java程序运行在64位jvm上需要付出较大的额外代价
1, 内存问题
由于指针膨胀和各种数据类型对齐补白的原因, 运行于64位系统上比32位增加10%-30%的内存消耗
2,运行速度
比32位慢15%
32位的内存最大4G, 无法满足需求, 这就是64位的意义了。
2^32 = 4,294,967,296
32位操作系统针对的32位的CPU设计。CPU内部寄存器和寻址总线是32位,指令集可以运行32位数据指令,也就是说一次可以提取32位数据(4个字节,32bit=4Byte)。32位CPU有4G左右的内存寻址空间。
1, 内存问题
由于指针膨胀和各种数据类型对齐补白的原因, 运行于64位系统上比32位增加10%-30%的内存消耗
2,运行速度
比32位慢15%
32位的内存最大4G, 无法满足需求, 这就是64位的意义了。
2^32 = 4,294,967,296
32位操作系统针对的32位的CPU设计。CPU内部寄存器和寻址总线是32位,指令集可以运行32位数据指令,也就是说一次可以提取32位数据(4个字节,32bit=4Byte)。32位CPU有4G左右的内存寻址空间。
本文探讨了Java程序在64位JVM上的运行情况,指出相较于32位系统,64位系统虽然能提供更大的内存寻址空间,但也带来了额外的开销,包括内存消耗增加10%-30%,以及运行速度减慢15%等问题。
9万+

被折叠的 条评论
为什么被折叠?



