如何手動計算字典的大小(它在內存中佔用的字節數)。我讀到最初它是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傳輸大小(以字節爲單位)?