java - Runtime.getRuntime() 不在服务器中提供输出

标签 java memory memory-management runtime server

我正在尝试计算此 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/

相关文章:

java - 在 word 中突出显示子字符串

java - 衡量一些排序算法的时间复杂度

memory - 如何检测另一个进程是否正在读取我的应用程序的内存

memory - 用于嵌入式应用的 Reed-Solomon 编码器(内存高效)

c# - 使用 File.Encrypt 加密文件,然后将其解密到内存流

iphone - NSMutableArray 访问问题

java - 什么是 CharsetDecoder.decode(ByteBuffer, CharBuffer, endOfInput)

删除目录时的 Java Ant 性能

c++ - shared_ptr 会自动释放内存吗?

ios - 消息发送到解除分配的实例非常奇怪的错误