python內存泄漏
『壹』 python的內存問題該這么解決
1.沒有開gc,或者gc設為debug狀態,導致交叉引用沒有被回收調
2.如果一個數據在邏輯上不應該存在,但是因為代碼上沒有做相關清除操作,導致他還存在,也是一種泄漏
舉個栗子,例如我要記錄最近50天的某個基金的日化收益率,定義一個全局的字典global_dict,運行了一個腳本進行計算,沒10分鍾算一次,但是我沒有進行clear操作,每次的計算只是單純的賦值dict[date] = rate,按理來說dict["五十天前"]的收益率都是不需要的,就是一種泄漏。
3.這種情況出現在python3.4之前,因為3.4已經修復了,是這樣的,如果一個類定義了__del__,並且該類存在循環引用的情況,這時候gc就會把這個類放在gc.garbage當中,不會去做回收,可以說是跳出了分代回收的機制,但是3.4之後的版本就沒有這種情況,會把他回收調。
『貳』 python跑了一個小時正常嗎
python跑了一個小時不正常。python跑時間超過半小時會發生內存泄漏的情況,是指程序中己動態分配的堆內存由於某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重後果。我的程序正好有大量的循環,因此也給不斷累積的內存泄漏提供了條件。

python特點
python是一種計算機程序設計語言,python是用來編寫應用程序的高級編程語言。完成同一個任務,python的代碼量很少,但是代碼少的代價是運行速度慢。python就為我們提供了非常完善的基礎代碼庫,覆蓋了網路、文件、GUI、資料庫、文本等大量內容,被形象地稱作內置電池。用python開發,許多功能不必從零編寫,直接使用現成的即可。
『叄』 Java,Python之類的有智能指針的語言,如何處理由交叉引用造成的內存泄漏
正常設計通常不會有交叉引用的問題。 別被這些東西困擾了。
比如上面設計中,引用對象,通常是因為這些對象是父類,或者是功能類,所以當前類被刪除的時候並不會被刪除,但是父類和功能類通常都在系統初始化時初始化,系統退出時才被刪除。
所以正常的設計情況下不存在這個問題。 內存泄漏往往是在使用別人的類,又不太搞清楚它的位置以及使用方法的情況下造成的。
