我正在构建一个大型导入脚本,该脚本使用来自单独代码库的功能,我怀疑该代码库存在内存泄漏。对于相同的操作,它调用代码库多达 10000 次,虽然第一次相对较快(2 秒),但脚本需要很长时间才能运行(超过 100 小时并且还在计数),到最后相同的任务完成到 60 秒或更长(并且仍在攀升)。在发现并修复泄漏的同时,解决此问题的最佳方法是什么?
经过集体讨论的一些解决方案是:
创建一个运行脚本一部分的进程,然后结束它,回收它使用的资源。
使用 shell 脚本多次启动程序,每次完成任务的子集,并将更新的数据输出到文件以供下一次迭代使用
编辑:更改了问题的措辞方式,以明确导入和代码库是单独的程序
最佳答案
您知道,您提供的所有证据都没有明确表明存在存储泄漏。真正的问题可能是完全不同的问题,例如设计不当的算法,或者调整不当的数据库表或查询。
假设这是存储泄漏,那么应用“创可贴”解决方案可能会浪费时间,或者实际上会使问题变得更糟。
您最好提前花时间确定真正的问题是什么并解决它,而不是尝试一系列解决方法......这可能会是徒劳的。
关于java - 解决 Java 内存泄漏的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611075/