如何手动计算字典的大小(它在内存中占用的字节数)。我读到最初它是280字节,在第6个密钥它增加,然后在第86个等。我想计算当我有超过10000个按键时它将占用的大小。以字节为单位的字典大小
1
A
回答
3
你可以做一个快速检查与sys.getsizeof()
(它将返回字节对象的大小):
>>> import sys, itertools
>>> sys.getsizeof(dict(zip(range(1), itertools.cycle([1]))))
280
>>> sys.getsizeof(dict(zip(range(5), itertools.cycle([1]))))
280
>>> sys.getsizeof(dict(zip(range(6), itertools.cycle([1]))))
1048
>>> sys.getsizeof(dict(zip(range(85), itertools.cycle([1]))))
3352
>>> sys.getsizeof(dict(zip(range(86), itertools.cycle([1]))))
12568
>>> sys.getsizeof(dict(zip(range(87), itertools.cycle([1]))))
12568
>>> sys.getsizeof(dict(zip(range(10000), itertools.cycle([1]))))
786712
如果你有兴趣在Python字典的实际内部工作,该dictobject.c
是明确资源(最新Python 3.6分支的here)。另外,请看dictnotes.txt
。
5
sys.getsizeof
将有助于在这种情况下:
from sys import getsizeof
dct = {'a': 5, 'b': 7}
print(getsizeof(dct))
尤其是对字典的大小将取决于你的Python版本(实施最近已改变)。
一个快速的方法来创建一个N
尺度的字典是:
from itertools import zip_longest
dct = dict(zip_longest(range(N),(), fillvalue=None))
# {0: None, 1: None, 2: None, ....}
这应该帮助测试你的假设您的特定Python版本。
this question可能有关系。
0
使用sys.getsizeof
得到尺寸信息
相关问题
- 1. 枚举大小(以字节为单位)
- 2. 获取HTTPRequest/HTTPResponse头字节大小(以字节为单位)
- 3. 以字节为单位测量字符串的大小php
- 4. 以字节为单位的UTF-8字符串大小
- 5. 如何计算以字节为单位的节点大小
- 6. 以字节为单位的大小(以KB为单位)对于sql字段中的字段
- 7. 以字节为单位的RSA签名的大小是多少?
- 8. 以字节为单位给出的不准确的NSData大小
- 9. 以字节为单位的类的大小
- 10. 得到的NodeJS变量的大小以字节为单位
- 11. 以字节/兆字节为单位确定表或选定记录的大小
- 12. Range头是压缩或未压缩字节的大小(以字节为单位)?
- 13. 不同编译器的枚举大小(以字节为单位)
- 14. svn修订版的大小(以字节为单位)
- 15. Java:向量的大小(以字节为单位)
- 16. 获取文件的总大小以字节为单位
- 17. 原始响应的大小(以字节为单位)
- 18. 以字节为单位计算imagepickerdidFinishPickingMediaWithInfo中的视频大小
- 19. 计算HTTP请求发布的大小(以字节为单位)
- 20. C++获取EOL的大小(以字节为单位)
- 21. 以字节为单位的分组大小
- 22. Q中的表格大小(以字节为单位)
- 23. 以字节为单位的无序映射大小
- 24. Actionscript 3 - 以字节为单位获取ByteArray的大小
- 25. 以字节为单位的HTML元素大小Javascript
- 26. 以字节为单位的已用内存。 Linux堆块大小
- 27. 以字节为单位确定缓冲区的总大小
- 28. 如何确定PyTables数组的大小(以字节为单位)?
- 29. Http以字节为单位获取请求包大小
- 30. JDBC SQL传输大小(以字节为单位)?