我有一个由Java进程启动的Perl脚本。当进程达到30MB时,它会永久停留。我注意到,小于27MB的脚本成功完成。Perl进程达到30MB并卡住
我的Java -Xmx
和-Xms
是1500MB
的操作系统是Windows Server 2008 R2的64位与4G内存。
我使用的ActivePerl 5.18.4
是否有Perl的进程的内存限制?
我有一个由Java进程启动的Perl脚本。当进程达到30MB时,它会永久停留。我注意到,小于27MB的脚本成功完成。Perl进程达到30MB并卡住
我的Java -Xmx
和-Xms
是1500MB
的操作系统是Windows Server 2008 R2的64位与4G内存。
我使用的ActivePerl 5.18.4
是否有Perl的进程的内存限制?
不,Perl不限制程序可以分配多少内存。 (32位进程具有2GB到3GB的可寻址内存),并且系统可以施加进一步的限制(例如使用ulimit
),但这不是问题,因为Perl在内存不足时会死掉。
您的程序被阻塞的原因与当时使用的内存量无关。
谢谢你的回答@ikegami。我已经知道了。 我在脚本中发现了问题。当我在输入流的read()中等待Java代码时,很多警告可能会溢出错误流并卡住脚本。 – Snow
请使用* markdown *格式化您的问题。它会帮助你阅读[*如何使用Markdown或HTML格式化我的文章*](http://stackoverflow.com/help/formatting) – Borodin
您的perl可执行文件是否构建为64位寻址?如果你不确定,请检查'perl -MConfig -E'say $ Config {ptrsize} * 8''的输出 – Borodin
我在脚本中发现了问题。无论哪种方式,我不知道为什么这里的用户减少了我的问题...... :( – Snow