python程序开子进程打包成exe文件运行炸内存原因剖析
生活随笔
收集整理的這篇文章主要介紹了
python程序开子进程打包成exe文件运行炸内存原因剖析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from multiprocessing import Processdef task():print("hahaha")passif __name__ == '__main__':p = Process(target=task)p.start()
內存占用飆升,第一時間意識到,程序在循環開啟子進程,而且并沒有進入子進程執行,這令我百思不得其解,十分困擾。
畢竟python不是主流做可執行軟件,網絡資料十分有限,后來在某論壇找到一篇沒說清楚問題的博客,不過好在實踐能力強,get到了一條關鍵語句
關鍵代碼:multiprocessing.freeze_support()
以上這句代碼加在 if name == ‘main’: 的下一行,記得在文件開頭import multiprocessing一下,問題完美解決
分析:開啟子進程是不支持打包exe文件的,所以會不停向操作系統申請創建子進程,導致內存炸了,multiprocessing.freeze_support()就是解決這個問題的,不過由于應用不多,導致這方面資料非常少
原文鏈接
總結
以上是生活随笔為你收集整理的python程序开子进程打包成exe文件运行炸内存原因剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中调用多进程加速处理文件
- 下一篇: 编程大白给编程小白的四点建议