小编典典

如何在Python中测量算法的运行时间

algorithm

我如何才能确保并比较我用python编写的算法的运行时间。如果可以的话,还可以指向一个不错的算法站点/论坛


阅读 534

收藏
2020-07-28

共1个答案

小编典典

我不是100%知道“用python编写的算法的运行时间”是什么意思,所以我认为我可能会尝试更广泛地研究一些潜在的答案。

  • 算法没有运行时间 ; 实现可以是定时的,但是算法是做某事的抽象方法。优化程序的最常见也是最有价值的部分是分析算法,通常使用渐近分析并计算时间,空间,磁盘使用等方面的大O复杂性。

计算机实际上无法为您执行此步骤。这需要进行数学运算以弄清楚某些事物是如何工作的。优化这方面是具有可扩展性能的主要组成部分。

  • 您可以安排自己的具体实施时间。 在Python中执行此操作的最好方法是使用timeit。似乎最想使用的方式是用一个封装了要调用的函数的模块制作模块,并使用来从命令行调用它python -m timeit ...

在进行微优化时,使用timeit来比较多个代码段,但这通常不是您想要比较两种不同算法的正确工具。通常,您需要的是渐近分析,但是您可能需要更复杂的分析类型。

  • 你必须知道几点大多数代码片段都不值得改进。 您需要对它们真正起作用的地方进行更改, 尤其 是在进行微优化并且不提高算法的渐近复杂性时。

如果将代码花费1%的时间的功能速度提高三倍,那不是真正的加速。如果您在程序花费50%的时间的功能上提高20%的速度,那么您将获得真正的收获。

要确定实际Python程序所花费的时间,请使用stdlib分析工具。这将告诉您示例程序在代码上花费的时间。

2020-07-28