我正在使用NS-2运行5000个及以上节点的模拟。
我遇到了以下错误:
'unable to alloc 32026 bytes
'[许多此类错误]和
'bus error
'
我已将代码用于最多500个节点,并且工作正常。现在我正在模拟大型网络。有没有人遇到过这个错误?
答案 0 :(得分:0)
你内存不足。你收到这么小的分配信息表明你真的内存不足;解决这个问题并非易事。
可能导致此问题的一种可能性是同时在同一系统上运行太多其他程序,另一种可能性是您有内存泄漏。虽然Tcl本身已经仔细审核了内存泄漏,但是我不能谈论NS2,你的脚本本身可以通过保持对事物的引用超过它们应该引起“泄漏”。对此进行排序是一项相当大的工作。
当然,你可以采取好老式的“在问题上投入更多硬件”的方法。获得64位Tcl和NS2版本,并在具有16GB内存的系统上运行它。这个选项比以前便宜很多,因为64位硬件正在成为主流(最后!)但它不是免费的......