gpt4 book ai didi

java - 如何计算Java程序的内存使用量?

转载 作者:太空狗 更新时间:2023-10-29 23:03:07 27 4
gpt4 key购买 nike

如果我使用 Runtime 类(freeMemory()totalMemory()gc() ),然后它给了我超过 MB 的内存(即 1,000,000 字节)。

但是如果我在任何在线编译器上运行相同的代码,那么它们会显示以 KB(即 1000 字节)为单位使用的内存。这是一个巨大的差异。

这意味着 Runtime 不显示程序实际使用的内存。

我需要计算程序实际使用的内存。这些在线编译器使用什么方式计算程序使用的内存?

最佳答案

首先计算代码执行前使用的内存,即代码的第一行。

long beforeUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();

计算代码执行后使用的内存:-

long afterUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();

然后你可以这样做:

long actualMemUsed=afterUsedMem-beforeUsedMem;

它将为您提供程序使用的实际内存。

要进行进一步的内存分析,最好的选择是任何分析器工具,例如 jvisualvm .

  • 请记住,Runtime.getRuntime().totalMemory(),这个内存是您的 JVM 可用的总内存。
  • java -Xms512m -Xmx1024m ,表示你程序的总内存将从 512MB 开始,可能会延迟加载到最大 1024MB。
  • 因此,如果您在不同的 JVM 上运行相同的程序,Runtime.getRuntime().totalMemory() 可能会给您不同的结果。

关于java - 如何计算Java程序的内存使用量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37916136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com