栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java获取可用内存

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java获取可用内存

这是该主题给出的答案的内联成绩单。但是,尽管我的回答被标记为已接受,但在该主题上已指出,这不是理想的解决方案。

public class Main {  public static void main(String[] args) {    System.out.println("Available processors (cores): " +   Runtime.getRuntime().availableProcessors());    System.out.println("Free memory (bytes): " +   Runtime.getRuntime().freeMemory());    long maxMemory = Runtime.getRuntime().maxMemory();    System.out.println("Maximum memory (bytes): " +   (maxMemory == Long.MAX_VALUE ? "no limit" : maxMemory));    System.out.println("Total memory (bytes): " +   Runtime.getRuntime().totalMemory());    File[] roots = File.listRoots();    for (File root : roots) {    System.out.println("File system root: " + root.getAbsolutePath());    System.out.println("Total space (bytes): " + root.getTotalSpace());    System.out.println("Free space (bytes): " + root.getFreeSpace());    System.out.println("Usable space (bytes): " + root.getUsableSpace());  } }}

用户克里斯蒂安·弗里斯(Christian Fries)指出,假设

Runtime.getRuntime().freeMemory()
为你提供了在出现内存不足错误之前可以分配的内存量是错误的。

在文档中,的签名返回

Runtime.getRuntime().freeMemory()
是这样的:

返回:近似于当前可供将来分配的对象使用的内存总量,以字节为单位。

但是,用户Christian Fries声称此功能可能会被误解。他声称,直到出现内存不足错误(空闲内存)之前可以分配的大约内存量可能由以下公式给出:

long presumableFreeMemory = Runtime.getRuntime().maxMemory() - allocatedMemory;

由allocatedMemory给出:

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

这里的关键是空闲内存的概念之间的差异。一件事是操作系统提供的Java虚拟机内存。另一个是Java虚拟机本身实际使用的包括内存块块的字节总数。

考虑到分配给Java应用程序的内存是由Java虚拟机按块管理的,因此Java虚拟机可用的可用内存量可能与Java应用程序可用的内存不完全匹配。

具体来说,克里斯汀·弗里斯(Christian Fries)表示-mx或-Xmx标志的使用,以设置Java虚拟机可用的最大内存量。他指出以下功能差异:

Runtime.getRuntime().maxMemory();Runtime.getRuntime().totalMemory();Runtime.getRuntime().freeMemory();

克里斯蒂安总结自己的答案时指出,

Runtime.getRuntime().freeMemory()
实际上返回的是所谓的“可能的自由记忆”。即使将来的内存分配不超过该函数返回的值,如果Java虚拟机尚未收到主机系统分配的实际内存块,java.lang.OutOfMemoryError仍可能会产生a。

最后,正确的使用方法将在不同程度上取决于你的应用程序的具体情况。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号