我在服务器上运行模拟,至少有27GB内存。 我的程序的功能是将数据包逐个插入到队列中,每个时间间隔都会加扰。当程序的内存占用2GB时,通过观察服务器的任务管理器,程序被错误地停止。所以我会问几个问题:
如果在服务器中有足够的内存,如何将2GB的值配置为更大的值?
数据包占用并保存在队列中的字节数,以记录其信息?
其他信息: 1.当我运行2个程序时,总内存可能大于2GB,如果单个程序使用少于2GB,则没有错误。
非常感谢!!
答案 0 :(得分:1)
OMNeT ++附带一个32位版本的MinGW,这意味着在Windows上编译的所有omnet ++模拟都将是32位进程。 32位进程不能大于2GB(在Windows上的某些版本上为3GB)。所以你看到的是32位地址空间的硬限制。即使主操作系统是64位(如您的情况),也是如此。
Linux和Mac OS X上的OMNeT ++使用64位编译器,因此这些限制不适用。这个问题的简短答案是你应该在Linux或Mac OS上运行你的模拟。
由于这似乎是一台相对较大的机器,我想你无法用Linux重新安装它。一个好的解决方法是将64位Linux发行版安装到虚拟机客户机中,并使用它来运行OMNeT ++模拟。这样你几乎可以使用机器的所有物理资源。