In [1]: from primes
import
primes
2 |
In [2]: %mprun -f primes primes(1000) |
3 |
In [3]: %lprun -f primes primes(1000) |
這樣可以節省你很多時間和精力,因為你的源代碼不需要為使用這些分析命令而進行修改。
內存泄漏在哪里?cPython解釋器使用引用計數做為記錄內存使用的主要方法。這意味著每個對象包含一個計數器,當某處對該對象的引用被存儲時計數器增加,當引用被刪除時計數器遞減。當計數器到達零時,cPython解釋器就知道該對象不再被使用,所以刪除對象,釋放占用的內存。 如果程序中不再被使用的對象的引用一直被占有,那么就經常發生內存泄漏。 查找這種“內存泄漏”最快的方式是使用Marius Gedminas編寫的objgraph,這是一個極好的工具。該工具允許你查看內存中對象的數量,定位含有該對象的引用的所有代碼的位置。 |
一開始,首先安裝objgraph:
最普遍的對象是哪些?在運行的時候,你可以通過執行下述指令查看程序中前20個最普遍的對象:
|