您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python大可变RAM使用

Python大可变RAM使用

是的,字典将存储在过程存储器中。因此,如果它变得足够大,以至于系统RAM中没有足够的空间,那么当系统开始在磁盘之间来回交换内存时,您可能会看到速度显着下降。

其他人则说,几百万件物品应该不会造成问题。我不确定。dict开销本身(在计算键和值占用的内存之前)非常重要。对于Python 2.6或更高版本,sys.getsizeof提供了有关各种Python结构占用多少RAM的一些有用信息。从64位OS X机器上的Python 2.6获得一些快速结果:

>>> from sys import getsizeof
>>> getsizeof(dict((n, 0) for n in range(5462)))/5462.
144.03368729403149
>>> getsizeof(dict((n, 0) for n in range(5461)))/5461.
36.053470060428495

因此,dict开销在此计算机上的每一项的36个字节与每项的144个字节之间变化(确切值取决于字典内部哈希表的填充程度;这里5461 = 2 ** 14 // 3是阈值之一内部哈希表已放大)。那是在增加字典项目本身的开销之前;如果它们都是短字符串(比如说6个字符或更少),那么每一项仍会增加一个== 80字节(如果许多不同的键共享相同的值,则可能会更少)。

因此,它不会采取 的是 典型的机器上几百万字典项排RAM。

python 2022/1/1 18:51:42 有362人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶