在python中编写速度有效的代码

时间:2015-11-27 18:05:05

标签: python performance

在浏览堆栈交换时,我看到很多人在答案中都提到了速度效率。一个代码如何比执行相同功能的另一个代码更快?

  • 是什么让代码运行得更快?少行?
  • 导入是否意味着性能损失?
  • 编写性能高效的代码时,我应该记住哪些内容?
  • 为什么我需要性能高效的代码?

我也见过写人的人

  

速度快,能获得美丽吗?

为什么美丽的代码会变慢?

2 个答案:

答案 0 :(得分:3)

我会试着给你一个具体的答案。你的问题在国外太过分了,涉及很多不容易解释的事情。

一个代码如何比执行相同功能的另一个代码更快?

例如,您必须在数组中找到一个元素。您可以在每个单元格中查找它,直到结束或在找到它时停止。这是我能给你的最简单的例子,但我认为这对初步想法是好的。 那么,现在你会寻找"冒泡排序"和" quickSort"作为排序数组的算法示例。他们做同样的工作,但第二个工作要快得多。

是什么让代码运行得更快?减少行数

不是真的,您可能有兴趣了解算法的复杂性。搜索" Big O Notation",这是一种描述算法渐近性能的方法。

导入是否意味着性能损失?

这取决于具体情况。如果您需要节省资源,因为您将执行代码的硬件可能是。在另一种情况下,性能上的差异可能很小,因此您不会遇到真正的问题。

编写性能高效的代码时,我应该记住哪些内容?

您必须学习有关算法的不同技能。 (回溯算法,分而治之算法,动态编程算法,贪婪算法,分支定界算法......) 在此之前,您通常会使用强力算法,这会降低您的代码效率。

为什么我需要性能高效的代码?

你有一个不是上帝的cpu。如果实际在您的计算机上运行的代码的等值不高,则会出现问题,一切都会变慢。在某些情况下无法维持。

速度快,以获得美丽?

漂亮的代码通常是易于理解的代码。

通常更难以理解更高效的算法,并且编写和维护代码还有其他成本。

但如果您习惯写清洁代码,则可以减少这种影响。

您的代码会在很多方面变得更好,更美观,更高效。

尝试使您的代码易于理解是非常重要的,但如果您不能,请在评论或文档中提供一些信息,说明您在这些方面做了什么。

我希望这会对你有所帮助。

答案 1 :(得分:0)

选择更好的算法通常可以显着提高速度。

例如,用quicksort替换冒泡排序;同样的工作,更好的算法,更快。

更快的算法可能更难理解,编写和维护代码还有其他成本;但我看到一项工作需要4天才能通过更好的算法减少到25秒。

有关更多详细信息,请搜索“Big O Notation” - 一种描述算法渐近性能的方法。