Python分析在cod之外的Rollup函数调用

2024-04-27 14:11:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图描述我们的django单元测试(如果测试速度更快,我们将更频繁地运行它们)。我在python内置的cProfile profiler中运行了它,生成了一个pstats文件。在

但是信噪比很差。列出的函数太多。当我进行一个数据库查询时,会调用很多django内部函数。这让我们很难看清到底发生了什么。在

有没有什么我可以“汇总”所有在某个目录之外的函数调用?在

例如,如果我在我的目录外调用了一个python函数,然后它调用了5个其他函数(都在我的目录之外),那么它应该把所有这些函数都汇总起来,这样看起来好像只有一个函数调用,它应该显示整个函数的累计时间。在

很明显,如果你想描述(比如)Django,这是不好的,但我不想这样做。在

我看着pstats.统计对象,但看不到修改此数据的明显方法。在


Tags: 文件django函数目录数据库时间单元测试内置
1条回答
网友
1楼 · 发布于 2024-04-27 14:11:53

我对python没有什么经验,但在性能调优方面有很多经验,所以有一种可能性:

  1. 与其将分析作为单元测试的一部分运行,不如进行总体执行时间度量。如果这些变化不大,你就没事了。

  2. 当您确实检测到更改时,或者如果您只是想让事情运行得更快,请使用this method。正如你所说,它的“信噪比”要高得多。

不同的是你不希望剖析器能找出你需要看什么。它更像是调试器中的一个中断点,中断不是在您选择的位置发生的,而是在不必要的缓慢运行时发生的概率很高。 如果在两次或更多的情况下,你看到它在做一些可能被更好的东西取代的事情,平均来说,它会得到回报,而修复它将使其他问题更容易通过同样的方法找到。在

相关问题 更多 >