0

我正在使用 NS-2 为 5000 个及以上节点运行模拟。

我遇到了以下错误:

' unable to alloc 32026 bytes' [许多这样的错误] 和 ' bus error'

我已将我的代码用于多达 500 个节点,并且运行良好。现在我正在模拟大型网络。有没有人遇到过这个错误?

4

1 回答 1

0

你的内存不足了。您收到如此小的分配的消息表明您确实内存不足。解决这个问题并非易事。

导致这种情况的一种可能性是同时在同一系统上运行太多其他程序,另一种可能性是您有内存泄漏。虽然 Tcl 本身已针对内存泄漏进行了仔细审核,但我不能谈论 NS2,而且您的脚本本身可能会导致“泄漏”,因为它们持有对事物的引用的时间超过了应有的时间。解决这个问题需要大量的工作。

当然,您可以采用老式的“在问题上投入更多硬件”的方法。获取 Tcl 和 NS2 的 64 位构建并在具有 16GB 内存的系统上运行它。这个选项比以前便宜很多,因为 64 位硬件正在成为主流(终于!),但它不是免费的……</p>

于 2011-11-18T10:40:31.697 回答