成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術文章
文章詳情頁

python 中sys.getsizeof的用法說明

瀏覽:33日期:2022-06-18 14:16:30

科班出身的碼畜一直被灌輸一條上帝圣經:“一個int占4個字節,一個char占1個字節,一個float占4個字節。。。”,

今天看下了python的getsizeof函數,發現python中各個基本數據類型(對象)占用的內存大小和c++/Java完全不一樣~

前提概述:python中一切都是對象,so python中其實根本不存在int float這些類型,int其實是一個python對象。

int:28float:24string:54list():64{}:288ste():224

python 中sys.getsizeof的用法說明

此外,

(1)sys.getsizeof只計算實際使用的內存大小,引用所消耗的內存大小不計算。

(2)sys.getsizeof只能作為計算內存大小的參考~

這里有一個問題,為什么python各個數據類型占用大小和c++中不一致呢?

這里本質上是由python的實現所決定的,python代碼在運行的時候會由python解析器執行,具體會解析為C語言的某種結構。也就是說,python中的一個int(或其他)映射到c語言中會是一種復雜結構體。

以python的int為例說明,下面是python的int在C中的具體形式:

typedef struct { PyObject_HEAD long ob_ival;} PyIntObject;

struct _longobject { long ob_refcnt; // 引用計數 PyTypeObject *ob_type; //變量類型 size_t ob_size; //實際占用內容大小 long ob_digit[1]; //存儲的實際python值};

發現沒有,python實際的值只是相應C結構中的一個屬性,難怪python的int占28個字節,而C語言只需要4個字節,因為python還存儲了很多相關的其他信息!其他信息是實際數值的6倍大小!

發現沒有,python實際的值只是相應C結構中的一個屬性,難怪python的int占28個字節,而C語言只需要4個字節,因為python還存儲了很多相關的其他信息!其他信息是實際數值的6倍大小!

ps:想要精準控制內存大小,使用c++或者Java吧~

補充:使用 sys.getsizeof 查看 python 對象的內存占用

使用 sys.getsizeof 方法可以查看 python 對象的內存占用,單位:字節 (byte)

實際上是調用了 __sizeof__ 方法:

In [35]: import sysIn [36]: sys.getsizeof(’hello world’)Out[36]: 60In [37]: ’hello world’.__sizeof__()Out[37]: 60

有些數據類型在 Python3 和 Python2 中占用的內存是不同的,

例如 range :

# python3In [38]: sys.getsizeof(range(999))Out[38]: 48In [39]: sys.getsizeof(iter(range(999)))Out[39]: 48# python2>>> sys.getsizeof(range(999))8064>>> sys.getsizeof(iter(range(999)))64

關于這個值是怎么算出來的,有待研究~

暫時已知:這個值包括該對象的數值、簽名(包括數據類型、參數、調用方式等)等一系列數據所占總內存。可變對象所占內存可能極小,因為對象是指針,指向很大的數據。

In [65]: s = sys.getsizeofIn [66]: s(1)Out[66]: 28In [67]: s(11)Out[67]: 28In [68]: s(11111111)Out[68]: 28In [69]: s(1111111111)Out[69]: 32

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产片在线观看狂喷潮bt天堂 | 免费观看日本高清a毛片 | av在线亚洲男人的天堂 | 欧美亚洲综合视频 | 高清一级毛片免免费看 | 国产美女毛片 | 68久久久久欧美精品观看 | 成人 在线播放 | 99爱精品视频 | 真实国产精品视频国产网 | 亚洲黄色免费观看 | 爱爱亚洲| 99亚洲精品视频 | 国产一区二区三区精品久久呦 | 精品国产一区二区三区四区vr | 国产大片一区 | 欧美高清日本三级人妇 | 欧美成人观看 | 男人的天堂中文字幕 | 99久久精品费精品国产一区二 | 香蕉超级碰碰碰97视频在线观看 | 日韩成人免费在线 | 91欧美精品综合在线观看 | 成人免费一区二区三区视频软件 | 免费a级毛片无码 | 欧美日韩一区二区三区在线观看 | 欧美激情久久久久久久久 | 杨幂精品国产专区91在线 | 在线免费看a | 日本三级香港三级人妇99视 | 久草首页在线观看 | 欧美一级美片在线观看免费 | 欧美一级日本一级韩国一级 | 国产日韩欧美精品 | 中文在线观看视频 | 三级c欧美做人爱视频 | 色情毛片 | 在线久久 | 美女张开腿让男人桶爽免 | 欧美成人亚洲高清在线观看 | 成人久久免费视频 |