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个最普遍的对象: |