java - Mac OSX 10.6.7 上进程 'java' 的大量线程和内存使用

标签 java macos gwt glassfish netbeans-6.9

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

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

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

最佳答案

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

编码实践

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

2) 验证 io 相关的不良做法并清理它们(这甚至提高了部署性能)

轻量级 IDE

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

例子-

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

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

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

正如 utsun 所说 - 你很幸运,对于我们中的一些人来说,内存不足的事情经常发生在原始硬件上。

除了投入更多硬件之外,我很乐意让其他人分享一些技巧来收集或寻找 IDE 的内存优化。示例 - 仅使用 gwt/maven/svn 绝对必要的插件构建的 eclipse 或 netbeans。扔掉所有其他花哨的东西。

关于java - Mac OSX 10.6.7 上进程 'java' 的大量线程和内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522660/

相关文章:

java - 在 Groovy 中备份文件夹

java - 从工厂中的字符串参数获取正确的对象

java - Google 应用引擎 + Java 代理

swift - 如何在 Swift 中执行人脸检测

java - 通过java在mac中打开终端

html - 表格拉伸(stretch) div

java - 获取 CSS 位置属性 gwt

java - 有类似 "build-once"构建器的东西吗?

java - 面板未显示在框架中

macos - Node.js HTTP 服务器端口 8080