当前位置: 首页 > 面试题库 >

Java Runtime.maxMemory不正确?

岑畅
2023-03-14
问题内容

我运行以下方法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的内存吗?有什么想法吗?


问题答案:

从文档中

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

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

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

你想做什么?



 类似资料:
  • 问题内容: SimpleHttpConnectionManager使用不正确。确保始终调用HttpMethod.releaseConnection(),并且一次只有一个线程和/或方法正在使用此连接管理器。 是否有人知道为什么会出现此错误,并导致我要下载的文件失败或失败,然后重试或下载未完成的文件 谢谢 ! 问题答案: 确保不使用SimpleHttpConnectionManager创建和使用来自多

  • 有人能告诉我代码有什么问题吗?它只显示第一行和表头information.thks

  • 我正试图将maven V3.5.4安装到我的计算机上,每当我尝试'mvn-version'命令时,我会得到 “MVN”不被识别为内部或外部命令、可操作程序或批处理文件。 我已经查阅了关于如何做到这一点的多个教程,他们提供了几乎相同的信息。添加系统变量M2和M2_HOME,然后向Path系统变量追加一个目录。我将系统变量配置为: null null null null 我的路径变量是: 我不知道如何

  • 我无法正确获取此持久性文件...我在书中找不到任何更多的资料可供我参考。我用的是MySQL数据库。 编辑 严重:部署应用程序[VaadEntertainapp]时出现异常 Severe:org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:发现以元素“provider”开头的内容无效。应为“{”http://java.sun.com/xml/ns

  • 我正在尝试匹配从服务器下载的文件的md5sum。只有当总和匹配时,处理才会继续。 上面的代码并没有每次为某些文件正确提供md5sum。 当我去控制台检查md5sum时 下载文件的vimdiff未提供任何差异。。下载后的文件是正确的。 我无法在上述代码中看到问题。 我正在尝试更改缓冲区大小。但没有运气,所以我猜这不是因为缓冲区大小等。 问候Dheeraj Joshi

  • 所以Eclipse正在工作windows安装了一些更新并重新启动了我的计算机,然后突然eclipse不工作了。我已经用它做了一些尝试,我的java类路径是正确的,我相信但是eclipse仍然只会显示启动屏幕,然后立即关闭。 除非我使用-debug-consoleLog标记运行它,否则它似乎工作正常。你知道怎么解决这个问题吗? 编辑: 所以当我用调试控制台日志标签启动它时,日志是这样写的 这是我的日