VJS*_*VJS 12 java memory memory-management java-ee
我有以下内存选项配置:
export MEM_OPTS =" - Xmx2560m -Xms2560m -XX:NewSize = 786m -XX:MaxNewSize = 786m -XX:+ UseTLAB -XX:MaxPermSize = 512m"
GC参数如下:
export GC1_OPTS =" - XX:+ UseConcMarkSweepGC -XX:+ UseParNewGC -XX:CMSInitiatingOccupancyFraction = 50 -XX:+ CMSPermGenSweepingEnabled -XX:+ CMSClassUnloadingEnabled -XX:+ CMSParallelRemarkEnabled -XX:+ UseAdaptiveGCBoundary"export GC2_OPTS =" - XX:+ ExplicitGCInvokesConcurrent "
我想知道,当CMS运行时.它将在2560 MB的50%之后运行,还是在512 MB内存的50%之后运行.
这个概念是什么?
我的总内存将是= 2560 + 786 + 512 MB ....对吗?或"-XX:NewSize = 786m -XX:MaxNewSize = 786m"适用于NON Heap.请解释这个概念.
Fra*_*eau 27
都不是.它将有资格在老一代占用率达到50%之后运行,其中老一代的大小是堆的大小减去新一代的大小:2560m - 786m = 1792m,所以这将是在老一代达到896米.但这并不总是唯一的参数.你可能想要添加-XX:+ UseCMSInitiatingOccupancyOnly如果你想让它成为唯一的参数(尽管根据我的经验,CMS实际上触发了阈值,即使没有它).
总结一下:
-Xmx 是总堆内存-XX:NewSize/ -XX:MaxNewSize是该堆内新一代的大小范围-XX:PermSize/ -XX:MaxPermSize是永久代的大小范围,即非堆内存| 归档时间: |
|
| 查看次数: |
24050 次 |
| 最近记录: |