Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进程占用大量线程和内存';java';在Mac OSX 10.6.7上_Java_Macos_Gwt_Glassfish_Netbeans 6.9 - Fatal编程技术网

进程占用大量线程和内存';java';在Mac OSX 10.6.7上

进程占用大量线程和内存';java';在Mac OSX 10.6.7上,java,macos,gwt,glassfish,netbeans-6.9,Java,Macos,Gwt,Glassfish,Netbeans 6.9,我正在使用java+gwt和NetBeans 6.9.1+Glassfish 3.0.1开发一个web应用程序。经过几个小时的开发,我的系统性能下降,所以我总是在活动监视器上检查某个进程是否获得了所有内存或cpu。我总是注意到几个名为“java”的进程,它们产生了大约50-60个线程。我的系统真的很慢,直到我杀死他们,然后我才能正常工作 我在开发过程中使用NetBeans调试模式,但即使我停止调试模式,java进程也会不断降低系统性能,直到我将其杀死。我有时也会遇到“java.lang.OutO

我正在使用java+gwt和NetBeans 6.9.1+Glassfish 3.0.1开发一个web应用程序。经过几个小时的开发,我的系统性能下降,所以我总是在活动监视器上检查某个进程是否获得了所有内存或cpu。我总是注意到几个名为“java”的进程,它们产生了大约50-60个线程。我的系统真的很慢,直到我杀死他们,然后我才能正常工作

我在开发过程中使用NetBeans调试模式,但即使我停止调试模式,java进程也会不断降低系统性能,直到我将其杀死。我有时也会遇到“java.lang.OutOfMemoryError:java heap space”错误,它发生在我的NetBeans距离打开几个小时后(比如12-16个小时后)(同样在Linux环境中,我也会遇到同样的NetBenas版本)。在这种情况下,我需要关闭并重新打开它,使其重新编译/工作

有没有人经历过同样的问题和/或知道如何避免?
您认为这个问题可能是由我正在开发的应用程序中的某种问题引起的,还是可能是Netbeans内存泄漏或bug引起的?

我们在eclipse中也有类似的问题。我们耐心地尝试了以下步骤,并解决了一些问题

编码实践

1) 在服务器端代码上验证了与db/hibernate相关的会话打开和关闭,并清除了数百个未关闭会话的不良实践实例(这甚至提高了部署性能)

2) 验证与io相关的错误做法并将其清除(这甚至可以提高部署性能)

轻量级IDE

1) 确保IDE只有您需要的插件。可以为任务定制多个IDE安装

示例-

a) GWT-Dev-一个IDE实例只有GWT-Dev所需的插件

b) 代码重构-一个IDE实例安装了findbugs、PMD和CodePro

注意:始终从最低限度的IDE设置开始(有或没有hello world项目代码)。配置文件和检查某些插件在实例化或正常使用时是否泄漏内存

正如乌特桑所说——你很幸运,对于我们中的一些困在原始硬件上的人来说,内存不足的问题发生得更频繁


除了投入更多的硬件外,我希望其他人分享一些收集或寻找IDE内存优化的技巧。示例-一个eclipse或netbeans构建,其中只包含用于gwt/maven/svn的绝对必要的插件。抛开所有其他噱头。

首先要做的事情是:找出哪些java应用程序(NetBeans、GlassFish等)是由这些进程的大多数执行的。您可以在终端中使用
ps ax | grep java | sed G
来了解命令行(尤其是查看每行的最后一个参数)。看起来父进程是NetBeans。顺便说一句,GlassFish是由NetBeans本身启动的,所以我不能确定。。在启动NetBeans之前,我将尝试手动启动GlassFish。好的,手动启动GlassFish,我立即得到一个包含50多个线程的java进程,即使关闭了NetBeans。ATM系统并不慢,但在NETBeBeS开发几个小时后,性能仍然下降。如果你每12-16小时收到OutOfMemoryError的信息,我认为你很幸运,我每小时都能收到一个。看,这个问题有点过时了,但这些看起来还是不错的建议,所以我会把你的答案标记为正确答案。谢谢