【问题标题】:how to release memory after java programme executionjava程序执行后如何释放内存
【发布时间】:2011-09-29 19:36:29
【问题描述】:

我已经安排了一个 jar 文件在使用 mysql 的系统启动时运行。

它用于将数千条记录从一个 DB 推送到另一个 DB,在每次执行期间它会占用大量 cpu 内存,但一旦完成(执行成功完成),它永远不会释放占用的 cpu 内存,直到系统重新启动。

这个 jar 计划每 4 小时运行一次。 如何释放这个占用的内存?

-- 谢谢, 手动

感谢您的关注:)

【问题讨论】:

  • JVM 消耗的内存总是在进程终止时释放。也许您一开始并没有终止 JVM。
  • CPU 还是内存?你怎么观察,那个内存没有被释放?你确定,内存泄漏是正确的术语吗?
  • 你到底是怎么发现内存没有释放的?
  • finally块(try - catch -finally)中关闭所有未关闭的java.sql.ResulsetPreparedStatements开始,然后寻找一些JProfiler并检查是否所有变量都从Used Memory消失了跨度>

标签: java memory-management memory-leaks java-memory-model


【解决方案1】:

当 Java 进程完成工作后退出;使用另一个调度程序(如 cron)在四个小时内再次启动 Java 进程。

【讨论】:

    【解决方案2】:

    您的程序中出现内存泄漏。

    检查此question 以解决它。

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 2019-09-08
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 2010-12-06
      • 2015-06-10
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多