写在前面
本文隶属于专栏《100个问题搞定Java并发》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和文献引用请见100个问题搞定Java并发
解答
几千个,具体的与计算机本身性能和 JVM 配置有关。
比如可以使用-Xmx标志增加JVM的最大内存分配,可以使用-Xss标记减少每个线程栈分配的内存大小。
补充
JVM 常用调优参数
参数 | 说明 | 补充 |
---|---|---|
-Xms | 初始堆内存大小,默认物理内存64/1 | -Xms = -XX:InitialHeapSize |
-Xmx | 最大堆内存,默认物理内存4/1 | -Xmx = -XX:MaxHeapSize |
-Xss | 栈内存大小,设置单个线程栈大小,一般默认512~1024kb。单个线程栈大小跟操作系统和JDK版本都有关系 | -Xss = -XX:ThreadStackSize |
-Xmn | 年轻代大小 | |
-XX:MetaspaceSize | 元空间大小 | 元空间本质跟永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是使用本机内存。因此,元空间大小仅受本地内存限制。 |
-XX:+PrintGCDetails | 打印GC详细日志信息 | |
-XX:SurvivorRatio | 幸存者比例设置 | |
-XX:NewRatio | 新生代比例设置 | |
-XX:MaxTenuringThreshold | 进入老年代阈值设置 |
关于 JVM 的详细内容请参考我的另一个专栏 《100个问题搞定Java虚拟机》