Tim*_*ton 3 python optimization profiling built-in cprofile
我无法在网上找到这个.我希望找到使用分析器如何更好地优化我的代码,并且当排序时哪些函数累积消耗最多的时间,str(),print和其他类似广泛使用的函数之类的东西占用了大部分的配置文件.分析python程序以获取用户定义函数的最佳方法是什么,只是为了查看他们可以优化的代码区域?
我希望这是有道理的,任何关于这个问题的光都会非常感激.
好吧,我认为你的真正目标是尽可能快地使你的代码,对吧?
假设你通过找出你的函数需要多长时间来做到这一点是很自然的,但还有另一种方法来看待它.
当你的程序运行时,它会跟踪一个调用树,这有点像窗外的真树.trunk就像main
函数一样,任何分支从中分离出来就像调用另一个函数一样.
假设每个"叶子"需要一定的时间,你想要做的是修剪树,以便尽可能多地删除叶子.
一种方法是找到有很多叶子的树枝并切掉叶子.另一种方法是在不需要的情况下切断整个分支.问题是找到你不需要的重枝.
一个骨头简单的方法就是随机选择几个叶子,比如10个,每个叶子沿着它的分支向下追踪一条线一直回到树干.从叶子到树干,任何分支点都会有一些这样的线路穿过它.穿过该分支点的线越多,该分支上的叶越多,并且通过修剪它可以节省的越多.
以下是将其应用于程序的方法.要对叶子进行采样,请随机暂停程序并查看调用堆栈.那是回到后备箱的线路.其上的每个呼叫站点(不是功能,呼叫站点)都是分支点.如果该呼叫站点在某些部分样本上,例如40%,那么通过修剪它可以节省多少.
因此,不要将其视为衡量功能需要多长时间.可以把它想象成哪个呼叫站点"很重".这里的所有都是它的.
归档时间: |
|
查看次数: |
904 次 |
最近记录: |