基本上我希望能够编写一个单元测试,告诉我我刚刚做出的改变是否改变了性能。我知道similar question,但答案就是那种"那不是你想要的",所以我要改写。
我注意到在python中进行性能分析时,一个关键问题是python代码行,而且更多的代码行= =性能更差。很难不同意。通常,我获得的最大性能提升是通过识别不必要地频繁调用的例程并减少它。
因此我想要的是能够编写这样的单元测试:
def test_performance_of_critical_routine():
start_counting_statement_executions()
critical_routine()
stop_counting_statement_executions()
assert number_of_executions() == previously_accepted_count
这个想法是,这是确定性的,并且在所有平台上都是一样的。如果测试失败,那么我可以决定是否认为回归/改进是合理的,并且更新测试很容易。但是,如果发生了重大改变并且出乎意料的话,我在UT舞台上遇到了一个问题,这总是很好!
我知道有很多事情会影响应用程序的性能,但CPU有时候只是其中之一,我希望能够更早地抓住它。
有什么建议吗?