PyIntObject的对象池技术太可怕了~

最近在读《Python源码剖析》,只是看到PyIntObject的对象池技术而已,根据书中的讲解及源码可知:一旦系统中的某块内存被Python申请用于整数对象,那么这块内存在Python进程结束之前,将永远不会得到释放。

 

这样一句话实在太可怕了,于是做了个小小的实验:

假设sizeof(PyIntObject) = 12byte,那么1GB = 1024 * 1024 * 1024 / 12个PyIntObject,既然如此,试试运行下面的Python语句:

for i in range(1024 * 1024 * 1024 / 12):
	pass

效果怎么样,嘻嘻,机器卡死了吧~

呵呵,再看看你机器的CPU及内存使用情况看看,嘻嘻,没被吓着吧~

 

下面看下我的机器运行的结果:

你可能感兴趣的:(python)