【问题标题】:Why does the Mem Usage value increases with time?为什么 Mem Usage 值会随时间增加?
【发布时间】:2023-03-22 18:29:01
【问题描述】:

我的系统上有一个 24 小时连续运行 45 天的进程。早上线程数为 20,下午线程数为 100,晚上线程数又回到 20。但是 Mem Usage 和 VM size 值并没有回到线程数只有 20... 值每天都在增加,直到我重新启动系统?这其中的根本问题是什么?请解释一下....

提前谢谢你。

阿努莎 G

【问题讨论】:

  • 你没有释放线程中分配的内存??
  • 另外,代码是用哪种语言编写的?以及哪个操作系统?
  • 你能提供更多细节吗?代码是用哪种语言编写的?你要占用多少内存?
  • 我用java写了代码。重新启动系统后,占用的内存约为 15,000 kb,线程数为 20。我使用的是 windows 2003。

标签: java memory-management


【解决方案1】:

这可能是因为Memory leaks 和/或Memory fragmentation。使用一些内存分析工具来解决这个问题。

【讨论】:

    【解决方案2】:

    听起来你有内存泄漏。没有更多信息,无法说出原因。

    【讨论】:

    • 我用java写了代码。重新启动系统后,占用的内存约为 15,000 kb,线程数为 20。我使用的是 windows 2003
    【解决方案3】:

    您的代码中可能存在少量内存泄漏,该泄漏会随着时间的推移而累积。每个线程每次运行时都可能泄漏一点内存。线程会产生和死亡,但内存会继续增加。

    【讨论】:

      【解决方案4】:

      正如其他人提到的那样,这是内存泄漏,如果您使用的是 Java,则可以使用 JProfiler、Yourkit Profiler 等分析器来查看内存泄漏发生的位置。如果使用其他语言,您应该找到如何分析这些应用程序

      【讨论】:

        猜你喜欢
        • 2012-08-07
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多