91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Python中sizeof函數的最佳實踐是什么

小樊
82
2024-08-27 12:43:09
欄目: 編程語言

在Python中,沒有內置的sizeof函數來直接獲取對象占用的內存大小

import sys

def get_size(obj, seen=None):
    if seen is None:
        seen = set()
    obj_id = id(obj)
    if obj_id in seen:
        return 0
    seen.add(obj_id)

    size = sys.getsizeof(obj)

    if isinstance(obj, dict):
        size += sum([get_size(v, seen) for v in obj.values()])
        size += sum([get_size(k, seen) for k in obj.keys()])
    elif hasattr(obj, '__dict__'):
        size += get_size(obj.__dict__, seen)
    elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
        size += sum([get_size(i, seen) for i in obj])
    return size

這個函數可以遞歸地計算對象及其所有引用對象的內存大小。請注意,這個函數并不完美,可能會產生一些誤差,因為它無法處理某些特殊類型的對象,如自定義類或C擴展。然而,在大多數情況下,它應該足夠好用。

使用示例:

my_list = [1, 2, 3, "hello", {"key": "value"}]
size = get_size(my_list)
print(f"Size of my_list: {size} bytes")

這將輸出my_list及其引用對象所占用的內存大小(單位為字節)。

0
察雅县| 博乐市| 柘城县| 深水埗区| 临西县| 大方县| 阿城市| 恩施市| 清苑县| 修武县| 恭城| 繁昌县| 广安市| 陵川县| 西平县| 尼木县| 黄骅市| 鹿邑县| 丹江口市| 靖西县| 普兰县| 永靖县| 台东县| 峨边| 古蔺县| 施甸县| 扶绥县| 远安县| 张家港市| 宁波市| 墨玉县| 理塘县| 乐清市| 丘北县| 泌阳县| 长丰县| 贵州省| 葫芦岛市| 资讯| 阜城县| 唐河县|