国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

你使用的Python對(duì)象占用了多少內(nèi)存?(下)

2019-09-10 07:22
電腦報(bào) 2019年29期
關(guān)鍵詞:實(shí)例內(nèi)存對(duì)象

現(xiàn)在,100X的內(nèi)存有可能被毫無(wú)用處地困在你的程序里,永遠(yuǎn)不會(huì)被再次利用,而且也拒絕被系統(tǒng)分配給其他程序。更具諷刺意味的是,如果你使用處理模塊來(lái)運(yùn)行程序的多個(gè)實(shí)例,那么就會(huì)嚴(yán)重限制你在給定計(jì)算機(jī)上可以運(yùn)行的實(shí)例數(shù)。

內(nèi)存剖析

想要衡量和測(cè)量程序的實(shí)際內(nèi)存使用情況,可以使用memory_profiler模塊。我嘗試了一下,不確定所得出的結(jié)果是否可信。它使用起來(lái)非常簡(jiǎn)單。你裝飾一個(gè)函數(shù)(可能是@profiler裝飾器的主函數(shù)0函數(shù)),當(dāng)程序退出時(shí),內(nèi)存分析器會(huì)打印出一份標(biāo)準(zhǔn)輸出的簡(jiǎn)潔報(bào)告,顯示每行的總內(nèi)存和內(nèi)存變化。

memory_profiler

https://pypi.python.org/pypi/memory_profiler

```python from memory_profiler import profile

@profile def main(): a = [] b = [] c = [] for i in range(100000): a.append(5) for i in range(100000): b.append(300) for i in range(100000): c.append('1234567890123

45678901234567890') del a del b del c

print ‘Done!’ if __name__ == '__main__':

main() ```

Here is the output:

Line # Mem usage Increment Line Contents

================================================

3 22.9 MiB 0.0 MiB @profile

4 def main():

如你所見(jiàn),這里的內(nèi)存開(kāi)銷(xiāo)是22.9MB。在【-5,256】范圍內(nèi)外添加整數(shù)和添加字符串時(shí)內(nèi)存不增加的原因是在所有情況下都使用單個(gè)對(duì)象。目前尚不清楚為什么第8行的第一個(gè)range(1000)循環(huán)增加了4.2MB,而第10行的第二個(gè)循環(huán)只增加了0.4MB,第12行的第三個(gè)循環(huán)增加了0.8MB。最后,當(dāng)刪除a、b和c列表時(shí),為a和c釋放了0.6MB,但是為b添加了0.2MB。對(duì)于這些結(jié)果我并不是特別理解。

總結(jié)

Python為它的對(duì)象使用了大量?jī)?nèi)存,也使用了各種技巧和優(yōu)化方式來(lái)進(jìn)行內(nèi)存管理。通過(guò)跟蹤對(duì)象的內(nèi)存使用情況并了解內(nèi)存管理模型,可以顯著減少程序的內(nèi)存占用。

學(xué)習(xí)Python,無(wú)論你是剛?cè)腴T(mén)的新手還是經(jīng)驗(yàn)豐富的編碼人員,都可以使用我們的完整Python教程指南來(lái)學(xué)習(xí)。

猜你喜歡
實(shí)例內(nèi)存對(duì)象
隱超DDR5 5600AOFRUS DDFR55200 16GBx2內(nèi)存套裝實(shí)戰(zhàn)
曬曬全國(guó)優(yōu)秀縣委書(shū)記擬推薦對(duì)象
筆記本內(nèi)存已經(jīng)在漲價(jià)了,但幅度不大,升級(jí)擴(kuò)容無(wú)須等待
攻略對(duì)象的心思好難猜
圖說(shuō)車(chē)事
內(nèi)存搭配DDR4、DDR3L還是DDR3?
個(gè)性簽名
完形填空Ⅱ
完形填空Ⅰ
上網(wǎng)本為什么只有1GB?
太仓市| 凤凰县| 通道| 睢宁县| 皮山县| 同德县| 文成县| 昌都县| 扶余县| 剑阁县| 长阳| 玛纳斯县| 连江县| 潍坊市| 昭通市| 玛沁县| 庆城县| 洱源县| 易门县| 九龙县| 九龙坡区| 治县。| 分宜县| 通辽市| 玉树县| 宁陵县| 温宿县| 荆门市| 泊头市| 靖边县| 灌云县| 陕西省| 平陆县| 禹城市| 马龙县| 积石山| 博兴县| 海丰县| 尉氏县| 浏阳市| 阳谷县|