java:内存不足错误的一般方法

标签 java multithreading out-of-memory polling

我一直在使用多个模块在 Java 上开发这个项目。很长一段时间以来,我偶尔会遇到“java: Out Of Memory”错误!我对这个“常见”错误还很陌生,想知道解决此类错误的一般方法
此外,是否有业界接受的标准工具来帮助找出此类错误的原因?
我项目中的模块包括来自第三方(使用网络服务)的每分钟轮询多线程等等。然而,这只是一个指针,我寻求一种通用方法,而不是针对我的项目的特定方法。
谢谢。

最佳答案

有时您只是有一个使用大量内存的类,您需要增加堆大小或制定更节省空间的算法。其他时候是泄漏,您需要尊重对象。

  1. 运行 jvisualvm(它包含在 JDK 中)。
  2. 连接到您的流程并尝试重新创建 内存不足错误,同时密切关注堆大小。
  3. 当内存变大时执行堆转储。搜索 按大小计算最大的物体 - 通常这会给你带来罪魁祸首 类。
  4. 查看依赖项以查看持有引用的内容。如果是内存泄漏,请确保取消引用不需要的对象。

关于java:内存不足错误的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367193/

相关文章:

java - 光滑 - 填充矩形

java - 修改从 wsdl 生成的 java 类的包名

java - Yield() 方法未按预期工作

c++ - NFA模拟器错误C++

Java Android Json OutOfMemoryError

java - 如何清除jtable中的数据

java - native 和增量 id 生成器类型之间的区别

mysql - 我是否正确计算了 MySQL 数据库的最大连接限制?

ios - 多个 NSThread 同步

python - gensim-Doc2Vec : MemoryError when training on english Wikipedia