我正在尝试计算此 stub 的运行时内存使用情况。这在 Eclipse 中工作正常,但是当我在 Linux 服务器上运行相同的代码时,它除了 0 之外不打印任何内容。 服务器配置: 64位, 4核服务器, 15GB 内存
List<Object> objList = new ArrayList<Object>();
Runtime runTime = Runtime.getRuntime();
long total1 = (runTime.totalMemory()) - (runTime.freeMemory());
for (int i = 0; i < 100000; i++) {
Object nee = new Object();
objList.add(nee);
}
long total2 = (runTime.totalMemory()) - (runTime.freeMemory());
System.out.println("total memory consumed : " + (total2 - total1));
获得生成 250 万个对象的一些值,但对于任何较少数量的对象,没有显示任何内容。
根据我的理解,服务器对于内存计算有一定的“精度”。 意味着,在内存消耗不超过这个“精度”值之前,计算出的内存值不会发生变化。
现在,疑问是这个精度值是如何确定的以及它是否可配置?
最佳答案
服务器上的常见做法是将输出流重定向到远离控制台的位置,因为通常没有这样的控制台。与服务器管理员交谈并检查它是否会进入/dev/null、日志文件或类似的文件。
关于java - Runtime.getRuntime() 不在服务器中提供输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30637044/