【发布时间】:2011-09-29 19:36:29
【问题描述】:
我已经安排了一个 jar 文件在使用 mysql 的系统启动时运行。
它用于将数千条记录从一个 DB 推送到另一个 DB,在每次执行期间它会占用大量 cpu 内存,但一旦完成(执行成功完成),它永远不会释放占用的 cpu 内存,直到系统重新启动。
这个 jar 计划每 4 小时运行一次。 如何释放这个占用的内存?
-- 谢谢, 手动
感谢您的关注:)
【问题讨论】:
-
JVM 消耗的内存总是在进程终止时释放。也许您一开始并没有终止 JVM。
-
CPU 还是内存?你怎么观察,那个内存没有被释放?你确定,内存泄漏是正确的术语吗?
-
你到底是怎么发现内存没有释放的?
-
从
finally块(try - catch -finally)中关闭所有未关闭的java.sql.Resulset、PreparedStatements开始,然后寻找一些JProfiler并检查是否所有变量都从Used Memory消失了跨度>
标签: java memory-management memory-leaks java-memory-model