将字节转换为GB的权利吗?

时间:2018-11-03 03:21:55

标签: java

我想检查Java应用程序中使用了多少内存,然后使用了:

 System.out.println("Free memory (bytes): " +
                    Runtime.getRuntime().freeMemory()/(1024*1024*1024));

我将字节数转换为GB。但是在Google上,它表明字节= 1e-9 gb。哪个是对的?

2 个答案:

答案 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兆字节。

所以没关系,您可以选择要讲的观点。