jvm堆设置模式

slmsl1lt  于 2022-11-07  发布在  其他
关注(0)|答案(5)|浏览(100)

我观察到,在设置堆大小时,人们更喜欢64,128,256,1024 ......如果我给予一个介于这些数字之间的值(比如500),JVM不会接受这个值吗?为什么这些数字是重要的和首选的?为什么我们还要在这种模式下升级RAM?
请帮助我理解。

6ju8rftf

6ju8rftf1#

JVM将接受任何值,这没有问题。使用2^n个值只是一个“约定”,使用其他值在实践中不会有负面影响。

a11xaf1n

a11xaf1n2#

如果你这么想的话

  • 1字节为8位
  • 1千字节= 1024字节
  • 1兆字节= 1024千字节
  • 1 GB = 1024 MB
  • ......等等......

不仅仅是2^n,计算中的内存与数字8密切相关--在大多数现代计算机中,数字8定义了一个字节。
将位组合在一起的主要原因是为了表示字符。由于所有计算事物的二进制性质,理想的位“块”是2的幂,即1, 2, 4, 8, 16, 32...。(基本上是因为它们总是可以被分成更小的相等的包(这也创建了用于存储大小的快捷方式,但那是另一回事了))。显然4位(在某些圆圈中为四位字节)可以给予我们2^4或16个唯一的字符。由于大多数字母表都比这个大,所以2^8(或256个字符)是更合适的选择。
有些机器使用其他长度的字节(特别是7或9),但这些机器并没有真正生存下来,主要是因为它们不容易操作。你当然不能把奇数一分为二,这意味着如果你要划分字节,你必须跟踪位串的长度。
最后,8也是一个方便的数字,许多人(心理学家等)声称,人类的头脑通常只能回忆起7-8件事立即(没有玩记忆的把戏)。

cczfrluj

cczfrluj3#

如果它不接受该值,请检查您是否在金额后放置了megabytesMm)或gigabytesGg)修饰符。
示例:java -Xms500M -Xmx500M -jar myJavaProgram.jar
还有,看看这个环节。

92dk7w1h

92dk7w1h4#

为什么我们也要以这种模式升级RAM。
这是因为存储芯片/存储卡/的大小是2字节的幂。其根本原因是它使电子设备更简单。而更简单意味着更便宜、更可靠和(可能)更快。

yuvru6vn

yuvru6vn5#

除了非书面约定外,它还具有性能影响-具体取决于计算机的体系结构。
例如,如果计算机是基于三元的,则将堆大小设置为3的幂的值会更好地工作。

相关问题