欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python內存泄漏

系統 1772 0

python基本運行機制。Python程序運行時不需要編譯成二進制代碼,而直接從源碼運行程序,簡單來說是,Python解釋器將源碼轉換為字節碼,然后再由解釋器來執行這些字節碼。

解釋器的具體工作:

1 完成模塊的加載和鏈接;

2 將源代碼編譯為PyCodeObject對象(即字節碼),寫入內存中,供CPU讀取;

3 從內存中讀取并執行,結束后將PyCodeObject寫回硬盤當中,也就是復制到.pyc或.pyo文件中,以保存當前目錄下所有腳本的字節碼文件;

* 之后若再次執行該腳本,它先檢查【本地是否有上述字節碼文件】和【該字節碼文件的修改時間是否與其腳本一致】。是就直接執行,否則重復上述步驟。

?

如果你的程序是死循環,不停歇的代碼,下列是需要注意內存的問題。
第一、pillow庫的隱患

            #內存將發生泄漏
from PIL import  Image

im = Image.open('1.jpg')
im.save()

#使用with使程序更安全
from PIL import  Image

with open('1.jpg' , 'rb') as open_file:
    im = Image.open(open_file)

          

第二、使用importlib.reload重載模塊后帶來使用全局變量帶來的隱患
假如采取不重啟程序方式,自動重新載入修改后的文件,所以需要進行重載模塊

            #run.py
import importlib

while True:
    module_name = importlib.import_module('.', 'test_file')
    module_name = importlib.reload(module_name)
    result = module_name.main(params)

#test_file.py
global_value = {'dataList':[],
                'number':'',}
key = '初始值'

def main(params):

    # params攜帶著此次任務數據

    global_value['number'] = params['number']
    get_data1(params)
    get_data2(params)
    return global_value

def get_data1(params):
    global key
    # 你的程序通過params得到新的數據
    data_once = {'每次運行產生的鍵': '每次運行產生的鍵值'}
    key = '新值'
    global_value['dataList'].append(data_once)

def get_data2(params):
    # 你的程序通過params和key新的值,得到另一份數據
    data_once = {'每次運行產生的新鍵': '每次運行產生的新鍵值'}
    global_value['dataList'].append(data_once)

          

上述就會發生一種隱患,以前我覺得垃圾回收機制很靠譜。但是當每一次重載模塊時,global_value將使用新的地址,原來的地址還放著上一次的數據,沒有被釋放掉
就算你在每次循環里添加gc.collect()也不能快速回收刪除上一次的數據,導致內存持續增長。。。


我的處理方式是
(1)將global_value這個轉移進函數內,通過傳參將get_data1和get_data2數據整合在一個變量里
(2)將所有函數放在一個類中,也可以避免全局變量數據存活時間太長


總結,雖然使用全局變量很省事,不用傳參,其他函數改變其值再被其他函數調用很方便,卻會導致內存泄漏,因為每一次reload時產生的是新的內存地址。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 三A级做爰片免费观看国产电影 | 日韩中文字幕一区二区三区 | 国产精品高清在线 | 97理论三级九七午夜在线观看 | 久久不射网 | 亚洲不卡视频 | 亚洲aⅴ天堂| 久久国产成人福利播放 | 色网站在线免费观看 | 国精品人妻无码一区二区三区性色 | 亚洲视频在线观看 | 久久88| 亚洲一区二区在线 | 69午夜 | 亚洲蜜桃AV色情精品成人 | 免费高清欧美一区二区视频 | 老色鬼久久AV综合亚洲健身 | 欧美日韩在线播放一区二区三区 | 久久久久久久 | 91欧美| 葫芦娃短视频下载 | 久久久婷婷一区二区三区不卡 | 在线观看亚洲 | 国产亚洲精品高清在线 | 精品国产欧美一区二区 | 久久精品免视看国产成人2021 | 免费福利在线观看 | 美国一级特色大黄 | 日本黄页在线观看免费 | 色就是色网站 | 香港三级台湾三级在线播放徐 | 国产精品久久九九 | 一级一级一级一级毛片 | 国产日韩一区二区 | 四虎影视永久免费观看网址 | 日日夜夜免费精品视频 | 成人精品国产 | 欧美性a视频 | 波多野结衣亚洲一区二区三区 | 久久精品人人做人人爽 | 91精品国产色综合久久 |