32位python内存限制?

我在OS X 10.5.3和Python 2.5.2上运行Python作业,可作为python.org的二进制下载可用.
我今晚运行了一个Python程序,最终使用了比预期更多的记忆.它只是继续使用越来越多的内存.我没有杀死它,而只是使用活动监视器观看了它.我以为当它分配了2GB时,它会炸毁,因为我认为32位Python只能解决2GB.
但是Activity Monitor报告说,它已分配了3.99GB的虚拟内存,然后最终用Malloc错误炸毁.我对2GB限制的理解是错误的吗?大概吧!但是我很确定我在Linux上的2GB上看到了它.
有人有解释,还是我对2GB限制的理解是错误的?还是对于早期版本或Linux上也许是正确的...?
感谢您的想法,
加里
- -
加里·罗宾逊
CTO
新兴音乐,有限责任公司
个人电子邮件:gaxhydey@mac.com
工作电子邮件:gr theghydeyde*@emergentmusic.com
公司:http://www.emergentmusic.com
博客:http://www.garyrobinson.net

# 回答1


加里·罗宾逊(Gary Robinson)写道:
是的,2GB只有31位. 4GB为32位(由于内存地址是无符号的).
-larry
# 回答2


在2008-06-24,Gary Robinson 您假设错误. :)
您可能一直在使用带有2GB用户VM的Linux内核
限制.
过去,Linux内核很常见
配置为使用户空间程序具有2GB的虚拟程序
地址空间.由于这里并不重要的原因,
这样做使管理各种内核与用户更简单
内存问题.回到没人能负担不起的时候
一百MB的RAM,这很有意义.这些天,Linux
可以为2GB,3GB或4GB的VM空间构建内核.有个
如果您选择3GB或4GB,则很小的额外开销,因此用户
有2GB或更少的物理RAM仍然经常配置内核
对于2GB的限制. http://kerneltrap.org/node/2450
- -
格兰特·爱德华兹·格兰特·尤!你可以邮寄豆吗
在蛋糕上?
visi.com

标签: python

添加新评论