gpt4 book ai didi

java - 运行时报告负内存使用情况

转载 作者:行者123 更新时间:2023-12-02 11:17:21 24 4
gpt4 key购买 nike

我正在运行性能测试来获取执行时间和内存使用情况。有时(可能是 30 次中的两次或三次)报告负内存使用情况。我想使用运行时,以便控制台输出具有逗号分隔的数据,可以轻松复制并粘贴到 Excel 中。

为什么在运行性能测试时内存使用量为负?

Runtime runtime = Runtime.getRuntime();
long preCacheMemory = runtime.totalMemory() - runtime.freeMemory();
start = System.nanoTime();

// run test

long elapsedCacheBuildTime = System.nanoTime() - start;
long postCacheMemory = runtime.totalMemory() - runtime.freeMemory();
System.out.print("Cache mem (bytes) = " + (postCacheMemory - preCacheMemory) + ",");
System.out.print("Cache Build Time = " + TimeUnit.NANOSECONDS.toMicros(elapsedCacheBuildTime) + ",");

最佳答案

当您计算preCacheMemory时,JVM中可能会有一些垃圾,这些垃圾将在运行测试期间被收集 .

运行测试使用的内存小于这些垃圾

因此,当您计算 postCacheMemory 小于 preCacheMemory 时,就会导致内存使用量为负值。

关于java - 运行时报告负内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com