gpt4 book ai didi

Java Runtime.maxMemory 不正确?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:22 25 4
gpt4 key购买 nike

我运行了以下方法 Runtime.getRuntime().maxMemory()并给了85196800。

但是,我随后从命令行运行 top,它显示

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                       
8672 root 20 0 1284m 156m 4296 S 0.3 60.9 0:33.35 java

这不是显示使用了 156M 的内存吗?知道发生了什么事吗?

最佳答案

来自文档,

最大内存() -返回 Java 虚拟机将尝试使用的最大内存量。

Top 仅显示系统分配给进程的(虚拟)内存量 - 您是在询问 Java 在最坏情况下它可以尝试使用多少。

一般而言,查询 JVM 和/或系统以获取有关实际使用内存的信息是不可靠的。例如,top 的数字可能包括已分配但未使用或调出的内存。它还可以包括诸如共享库之类的东西,其中一个 10MB 的库可能算作两个进程的分配,但在内存中只有一个物理副本。 (例如)

你想做什么?

关于Java Runtime.maxMemory 不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760044/

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