我想检查Java应用程序中使用了多少内存,然后使用了:
System.out.println("Free memory (bytes): " +
Runtime.getRuntime().freeMemory()/(1024*1024*1024));
我将字节数转换为GB。但是在Google上,它表明字节= 1e-9 gb。哪个是对的?
答案 0 :(得分:3)
JVM始终使用gibibytes或1024 ^ 3或1 << 30
,为清楚起见,应将其写为GiB,但并非总是如此。
我建议您选择GB = 1000 ^ 3或GiB = 1024 ^ 3,然后将结果写成单位,以明确您的意思。我还会显示一些精度,例如
System.out.println("Free memory: " +
(Runtime.getRuntime().freeMemory() * 1000 >> 30) / 1e3 +
" GiB"));
或
System.out.println("Free memory: " +
(Runtime.getRuntime().freeMemory() / 1_000_000 / 1e3 +
" GB"));
在两种情况下,它都会显示3位数的精度。
答案 1 :(得分:1)
这取决于视角。
从技术上讲,1 GB是1024兆字节。
但是从存储的角度来看,它被计算为1000兆字节。
所以没关系,您可以选择要讲的观点。