我在v.4.0.5中运行Netlogo模型,模型使用了太多内存然后退出。我试图根据用户手册中的说明更改内存限制无济于事。当我增加内存时,程序甚至没有打开。我无法通过RNetLogo运行它,因为它不再支持版本4.我知道此主题之前已被触及,但之前的响应尚未解决我的问题。我已将输出更改为表而不是电子表格。我想把内存增加到至少3GB。任何帮助将不胜感激!
答案 0 :(得分:1)
默认情况下,NetLogo 4.0(可追溯到2007年的日期!)在Mac OS X上以32位模式运行,这会将堆大小限制为2G。
您有两种选择:
选择1:升级到NetLogo 5.0或更高版本。默认情况下,这些版本以64位模式运行。
选择2:从命令行启动NetLogo 4.0,而不是使用提供的应用程序包。 Info.plist将被绕过,因此您可以在命令行中指定所需的堆大小。这些命令似乎适用于我的Mac:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)
cd /Applications/NetLogo\ 4.0.5
java -server -d64 -Xmx4096M -jar NetLogo.jar
以这种方式启动NetLogo之后,在About NetLogo对话框的System选项卡中,我看到:
Java HotSpot(TM)64位服务器VM 1.6.0_65(Apple Inc .; 1.6.0_65-b14-466.1-11M4716)
操作系统:Mac OS X 10.10.3(x86_64处理器)
Java堆:used = 8 MB,free = 176 MB,max = 3640 MB
注意" 64位服务器"和高于默认值的堆最大值。
也可能以某种方式编辑应用程序包以在64位模式下启动;我不知道。
答案 1 :(得分:0)
在添加更多内存之前,我要仔细检查我的程序是否有嵌套循环。 netlogo中很容易制作4层或5层嵌套循环,甚至没有意识到这一点,这确实可以减慢程序的速度。你确定你已经完全优化了你的计划吗?