精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-11
jigsaw 写道 wangzy 写道 32位下,不hack内核参数的话,内存顶多也就能直接访问到2g,要4g也没用。
什么?32位寻址只能到2G?谁告诉你的?这句话的上下文是什么? 像 Win NT 内核, 默认情况下只给应用使用2G的内存寻址空间, 其余2G空间为OS和DLL保留, 所以不hack的话应用最多只能分配到2G. 调整过参数以后可以让OS只占高端1G, 应用可以得到3G. 其它OS下情况可能不同, 但32位的OS下, 单个进程肯定是不可能获得4G地址空间的. 另外64位OS下应用内存增长的情况. 我猜想很可能是虚拟内存映射表的开销增加造成的, 这个了解虚拟内存实现机制以后比较容易理解. |
|
返回顶楼 | |
发表时间:2007-02-11
complystill 写道 jigsaw 写道 wangzy 写道 32位下,不hack内核参数的话,内存顶多也就能直接访问到2g,要4g也没用。
什么?32位寻址只能到2G?谁告诉你的?这句话的上下文是什么? 像 Win NT 内核, 默认情况下只给应用使用2G的内存寻址空间, 其余2G空间为OS和DLL保留, 所以不hack的话应用最多只能分配到2G. 调整过参数以后可以让OS只占高端1G, 应用可以得到3G. 其它OS下情况可能不同, 但32位的OS下, 单个进程肯定是不可能获得4G地址空间的. 另外64位OS下应用内存增长的情况. 我猜想很可能是虚拟内存映射表的开销增加造成的, 这个了解虚拟内存实现机制以后比较容易理解. 貌似有个啥32位NT内核模拟64位的玩意,可以让JVM在32位NT上拿到更多内存,具体数值不清,没有玩过,仅仅听说而已。 |
|
返回顶楼 | |