java - 解决 Java 内存泄漏的方法

标签 java

我正在构建一个大型导入脚本,该脚本使用来自单独代码库的功能,我怀疑该代码库存在内存泄漏。对于相同的操作,它调用代码库多达 10000 次,虽然第一次相对较快(2 秒),但脚本需要很长时间才能运行(超过 100 小时并且还在计数),到最后相同的任务完成到 60 秒或更长(并且仍在攀升)。在发现并修复泄漏的同时,解决此问题的最佳方法是什么?

经过集体讨论的一些解决方案是:

创建一个运行脚本一部分的进程,然后结束它,回收它使用的资源。

使用 shell 脚本多次启动程序,每次完成任务的子集,并将更新的数据输出到文件以供下一次迭代使用

编辑:更改了问题的措辞方式,以明确导入和代码库是单独的程序

最佳答案

您知道,您提供的所有证据都没有明确表明存在存储泄漏。真正的问题可能是完全不同的问题,例如设计不当的算法,或者调整不当的数据库表或查询。

假设这是存储泄漏,那么应用“创可贴”解决方案可能会浪费时间,或者实际上会使问题变得更糟。

您最好提前花时间确定真正的问题是什么并解决它,而不是尝试一系列解决方法......这可能会是徒劳的。

关于java - 解决 Java 内存泄漏的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611075/

相关文章:

java - glNormal3f 和 glNormalPointer 之间的区别

java - YourKit 是否报告 ReentrantLocks?

java - 从其他系统java代码运行.bat文件

Java:如何按属性对对象列表进行排序和分组

java.lang.IllegalArgumentException : Attempt to add ([custom-jar-with-spark-code]. jar) 多次到分布式缓存

java - 使用 JPA 规范指定结果限制

java - 重置时间选择器

java - 我无法在代码中使用任何 ID

java - 下载由 java web 服务 (POST) 流式传输的 pdf

java - 验证来自控制台的用户输入。命令是否有效等