好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > python 中sys.getsizeof的用法說明

python 中sys.getsizeof的用法說明

熱門標(biāo)簽:河北防封卡電銷卡 400電話辦理哪種 手機(jī)網(wǎng)頁(yè)嵌入地圖標(biāo)注位置 開封語(yǔ)音外呼系統(tǒng)代理商 電銷機(jī)器人的風(fēng)險(xiǎn) 地圖標(biāo)注線上如何操作 天津電話機(jī)器人公司 應(yīng)電話機(jī)器人打電話違法嗎 開封自動(dòng)外呼系統(tǒng)怎么收費(fèi)

科班出身的碼畜一直被灌輸一條上帝圣經(jīng):“一個(gè)int占4個(gè)字節(jié),一個(gè)char占1個(gè)字節(jié),一個(gè)float占4個(gè)字節(jié)。。。”,

今天看下了python的getsizeof函數(shù),發(fā)現(xiàn)python中各個(gè)基本數(shù)據(jù)類型(對(duì)象)占用的內(nèi)存大小和c++/Java完全不一樣~

前提概述:python中一切都是對(duì)象,so python中其實(shí)根本不存在int float這些類型,int其實(shí)是一個(gè)python對(duì)象。

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

此外,

(1)sys.getsizeof只計(jì)算實(shí)際使用的內(nèi)存大小,引用所消耗的內(nèi)存大小不計(jì)算。

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

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

這里本質(zhì)上是由python的實(shí)現(xiàn)所決定的,python代碼在運(yùn)行的時(shí)候會(huì)由python解析器執(zhí)行,具體會(huì)解析為C語(yǔ)言的某種結(jié)構(gòu)。也就是說,python中的一個(gè)int(或其他)映射到c語(yǔ)言中會(huì)是一種復(fù)雜結(jié)構(gòu)體。

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

typedef struct {
    PyObject_HEAD
    long ob_ival;
} PyIntObject;
struct _longobject {
    long ob_refcnt;  // 引用計(jì)數(shù)
    PyTypeObject *ob_type; //變量類型
    size_t ob_size;  //實(shí)際占用內(nèi)容大小
    long ob_digit[1];  //存儲(chǔ)的實(shí)際python值
};

發(fā)現(xiàn)沒有,python實(shí)際的值只是相應(yīng)C結(jié)構(gòu)中的一個(gè)屬性,難怪python的int占28個(gè)字節(jié),而C語(yǔ)言只需要4個(gè)字節(jié),因?yàn)閜ython還存儲(chǔ)了很多相關(guān)的其他信息!其他信息是實(shí)際數(shù)值的6倍大小!

發(fā)現(xiàn)沒有,python實(shí)際的值只是相應(yīng)C結(jié)構(gòu)中的一個(gè)屬性,難怪python的int占28個(gè)字節(jié),而C語(yǔ)言只需要4個(gè)字節(jié),因?yàn)閜ython還存儲(chǔ)了很多相關(guān)的其他信息!其他信息是實(shí)際數(shù)值的6倍大小!

ps:想要精準(zhǔn)控制內(nèi)存大小,使用c++或者Java吧~

補(bǔ)充:使用 sys.getsizeof 查看 python 對(duì)象的內(nèi)存占用

使用 sys.getsizeof 方法可以查看 python 對(duì)象的內(nèi)存占用,單位:字節(jié) (byte)

實(shí)際上是調(diào)用了 __sizeof__ 方法:

In [35]: import sys

In [36]: sys.getsizeof('hello world')
Out[36]: 60

In [37]: 'hello world'.__sizeof__()
Out[37]: 60

有些數(shù)據(jù)類型在 Python3 和 Python2 中占用的內(nèi)存是不同的,

例如 range :

# python3
In [38]: sys.getsizeof(range(999))
Out[38]: 48

In [39]: sys.getsizeof(iter(range(999)))
Out[39]: 48

# python2
>>> sys.getsizeof(range(999))
8064
>>> sys.getsizeof(iter(range(999)))
64

關(guān)于這個(gè)值是怎么算出來的,有待研究~

暫時(shí)已知:這個(gè)值包括該對(duì)象的數(shù)值、簽名(包括數(shù)據(jù)類型、參數(shù)、調(diào)用方式等)等一系列數(shù)據(jù)所占總內(nèi)存。可變對(duì)象所占內(nèi)存可能極小,因?yàn)閷?duì)象是指針,指向很大的數(shù)據(jù)。

In [65]: s = sys.getsizeof

In [66]: s(1)
Out[66]: 28

In [67]: s(11)
Out[67]: 28

In [68]: s(11111111)
Out[68]: 28

In [69]: s(1111111111)
Out[69]: 32

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python getsizeof()和getsize()區(qū)分詳解
  • python—sys模塊之獲取參數(shù)的操作
  • 解決python中os.system調(diào)用exe文件的問題
  • 使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn)
  • python中sys模塊的介紹與實(shí)例
  • python sys.stdin和sys.stdout的用法說明

標(biāo)簽:六盤水 宿遷 山東 蘭州 常州 江蘇 成都 駐馬店

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 中sys.getsizeof的用法說明》,本文關(guān)鍵詞  python,中,sys.getsizeof,的,用法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 中sys.getsizeof的用法說明》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python 中sys.getsizeof的用法說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: **毛片视频| 女厕三沟厕盗摄wc偷窥| 老师xxxxbbbb| 总裁张腿自慰被下属发现小说| 米奇欧美777四色在线影视| 成年网址网站在线观看| jizz日本女人| 国产农村妇女毛片精品久久久久 | 国产对白在线播放九色| 亚洲美女视频一区二区三区| 金银瓶4| 男人愿意添你下边说明啥| 欧美顶级少妇做爰XXOO胖妞| 久久精品系列| 天堂tv在线观看| xxxx视频在线观看| 无码人妻有码人妻中文在线视频 | 18同志chinese东北西北军| 国产在线视频网站| 日韩国品一二三产品区别2028| 17c在线精品无码秘?| 亚洲欧美激情图片| 国产乱码精品一区二区| 丁香久久婷婷| 欧美色视频日本高清在线观看| 欧美操人视频| 成人漫画在线免费观看| 又硬又粗进去好爽A片麻豆网站 | 性生活一级黄色片| 完整的强床戏视频| 欧美大片又色又爽又黄| 明星级做A片毛片免费| yy免费高清视频在线观看| 最新的毛片基地免费| 朝鲜特级毛片免费无码A片中| 男吸女奶头A片免费观看| 午夜一区二区免费视频| 一a级毛片| 欧美专区日韩专区| 国内精品视频在线观看| 受纵容攻的占有欲控制欲|