当前位置: 首页 > 知识库问答 >
问题:

如何找到剩余的内存量来分配对象?

商夜洛
2023-03-14

如何判断JVM还剩下多少内存可供使用?

我知道Runtime.getRuntime()。freeMemory()是一个不错的选择,但是它似乎没有返回一个合理的值。例如,当我运行我的main方法时,我打印了空闲内存,得到78904576字节,这只有75兆字节。因为我将maxMemory设置为2g,这似乎不合理。

老实说,我只是想知道我的内存有多快用完了,所以一个提供替代机制的答案也是可以接受的。

共有2个答案

齐建安
2023-03-14

如果您真的想监控JVM内存,您可能最好使用YourKit或JProfilier等分析工具。

阳德润
2023-03-14

这是公式

long availableMemory = Runtime.getRuntime().freeMemory() + (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory())

freeMemory()仅显示当前分配内存中的空闲内存,要获得所有可用内存,我们还必须包括尚未分配的内存。

另一种解决方案

    MemoryUsage mu = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
    long availableMemory = mu.getMax() - mu.getUsed();
 类似资料:
  • 本文向大家介绍如何确定Oracle中剩余的SQL工作量?,包括了如何确定Oracle中剩余的SQL工作量?的使用技巧和注意事项,需要的朋友参考一下 问题: 您想知道长时间运行的SQL可能需要多长时间才能完成。 解 我们可以使用“ V $SESSION_LONGOPS”视图来了解查询剩余的执行时间,“ V $SESSION_LONGOPS”视图显示已运行超过六秒钟的各种数据库操作的状态。请注意,该视

  • 我有一个大约18个节点的Kubernetes集群,其中很少有4核16G RAM的节点,很少有16核64G RAM的,集群上运行着大约25-30个应用程序。 每个应用程序都配置有请求和限制参数,大约2-3个核心 现在,我如何获得当前的利用率报告,说明当前群集中还剩下多少个内核/RAM?在部署任何新应用程序之前。 我尝试使用以下命令: 这些并没有告诉我剩下的核心或内存的确切数量。 任何线索都会有很大帮

  • 问题内容: +--------------------+ | | | | | | | | | 1 | | | | | | | | | +--------------------+ | | | | | | | | | 2 | | | | | | | | | +--------------------+ 如上所示的(1)的内容是未知的,因为它在动态生成的页面中可能会增加或减少。如上所示,第二个div(

  • 问题内容: 我在共享计算资源的环境中工作,即,我们有几台服务器计算机,每台服务器计算机都配备了一些Nvidia Titan X GPU。 对于中小型模型,Titan X的12 GB通常足以让2-3个人在同一GPU上同时进行训练。如果模型足够小,以至于单个模型无法充分利用GPU的所有计算单元,那么与运行另一个训练过程相比,这实际上可以提高速度。即使在同时访问GPU确实减慢了单个训练时间的情况下,具有

  • 我有一个关于java如何处理未使用变量的问题。 假设我有以下代码: 那么我就不会在代码中使用notUsedVariable。该变量是否会被存储,或者java是否足够聪明,可以在编译时忽略该变量? 谢谢

  • 问题内容: 如何获取util.Timer中剩余的时间?我想做的是添加一个进度条,显示直到计时器重新开始之前剩余的时间。 这就是我到目前为止所得到的: 问题答案: 您将需要第二个计时器以特定间隔刷新gui。 实现此目的的另一种方法是每秒激活一个计时器并更新ui中的计数。如果时间到了,请致电您的具体措施。 一个仅带有控制台输出的简单示例: 它的输出将是: 然后只需使用代码更改System.out即可更