斜率为2的直线方程,jvm的内存大小为什么通常的设置为2的n次方?


时间:

这个一般的jvm内存设置可能都是64m、128m、256m、512m、1024m、2048m等等,但基本都是2的n次方,感觉很少会使用一个随意的值,比如300m,的话

设置jvm内存:

-Xmx:Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms:Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn:Java Heap Young区大小,不熟悉最好保留默认值;

-Xss:每个线程的Stack大小,不熟悉最好保留默认值了的;

“2的幂方”MB的Java堆大小(-Xmx)只是个习惯???:

这个在某些具体的JVM上,例如Sun/Oracle JDK / OpenJDK的HotSpot VM,在给Java堆申请时会内部做凑整,向上调整到最近的操作系统内存页大小的倍数。

我们世道在x86上这通常是4KB,也可配置到例如2MB了的,HotSpot VM就会将Java heap的大小调整到这个的倍数得了。

但通常把-Xmx配置到“2的幂方”跟这个没任何关系的,网上说是一种习惯吧。

JVM版本最大内存(兆)client最大内存(兆)server的话:

实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值的了