14、jmap -heap看到的参数值与实际起作用的参数的关系?
发了几个例子在这里:https://gist.github.com/1363195
其中有个看起来很恐怖的值:
Java代码 收藏代码
MaxNewSize = 17592186044415 MB
这是啥来的?
C++代码 收藏代码
product(uintx, MaxNewSize, max_uintx, \
"Maximum new generation size (in bytes), max_uintx means set " \
"ergonomically")
在HotSpot VM里,intx是跟平台字长一样宽的带符号整型,uintx是其无符号版。
max_uintx是(uintx) -1,也就是说在32位平台上是无符号的0xFFFFFFFF,64位平台上则是0xFFFFFFFFFFFFFFFF。
jmap -heap显示的部分参数是以MB为单位来显示的,而MaxNewSize的单位是byte。我跑例子的平台是64位的,于是算一下 0xFFFFFFFFFFFFFFFF / 1024 / 1024 = 17592186044415 MB 。
参数的说明告诉我们,当MaxNewSize的值等于max_uintx时,意思就是交由ergonomics来自动选择young gen的最大大小。并不是说young gen的最大大小真的有0xFFFFFFFFFFFFFFFF这么大。
http://firefoxmmx.is-programmer.com/posts/32537.html
发了几个例子在这里:https://gist.github.com/1363195
其中有个看起来很恐怖的值:
Java代码 收藏代码
MaxNewSize = 17592186044415 MB
这是啥来的?
C++代码 收藏代码
product(uintx, MaxNewSize, max_uintx, \
"Maximum new generation size (in bytes), max_uintx means set " \
"ergonomically")
在HotSpot VM里,intx是跟平台字长一样宽的带符号整型,uintx是其无符号版。
max_uintx是(uintx) -1,也就是说在32位平台上是无符号的0xFFFFFFFF,64位平台上则是0xFFFFFFFFFFFFFFFF。
jmap -heap显示的部分参数是以MB为单位来显示的,而MaxNewSize的单位是byte。我跑例子的平台是64位的,于是算一下 0xFFFFFFFFFFFFFFFF / 1024 / 1024 = 17592186044415 MB 。
参数的说明告诉我们,当MaxNewSize的值等于max_uintx时,意思就是交由ergonomics来自动选择young gen的最大大小。并不是说young gen的最大大小真的有0xFFFFFFFFFFFFFFFF这么大。
http://firefoxmmx.is-programmer.com/posts/32537.html