安装它可能很麻烦。推荐应用像 Anaconda 如许的 Python 发行版或一个已安装了 Numba 的 Docker 镜像。完成安装后,我们导入它的 jit 编译器:
包含所有 7 个示例的完全代码的 Notebook 可在此处获得。
我们在一缸莨狁中总结一下我们的结不雅。我们给出了在最初的 Python 代码与优化的代码之间实现的加快。我们还给出了对 Julia 团队应用的每个基准测试示例应用的对象。
这缸莨狁注解,在前 4 个示例中,优化的 Python 代码比 Julia 更快,后 3 个示例更慢。请留意,为了公平起见,对于 Fibonacci,我应用了递归代码。
无论若何,可以说,在这个小型基准测试上,应用精确的对象时,Python 的机能与 Julia 的机能平起平坐。相反地,我们也可以说,Julia 的机能与编译后的
Python 平起平坐。推敲到 Julia 不须要对代码进行任何注释或修改,所以这本身就很有趣。
弥补解释
- def fib_seq(n):
- if n < 2:
- return n
- a,b = 1,0
- for i in range(n-1):
- a,b = a+b,a
- return a
我们暂停一会儿。我们已经看到在 Python 代码机能至关重要时,应当应用很多对象:
- 应用 line_profiler 履行分析。
- 编写更好的 Python 代率攀来避免不须要的计算。
- 应用向量化的操作和经由过程 Numpy 来广播。
- 应用 Cython 或 Numba 编译。
应用这些对象来懂得它们在哪些处所很有效。与此同时,请谨慎应用这些对象。分析您的代码,以便可以将精力放在值得优化的处所。重写代率攀来让它变得更快,有时会让它难以懂得或通用性降低。是以,仅在获得的加快物有所值时这么做。Donald Knuth 曾经恰到好处地提出了这条建议:
然则请留意,Knuth 的引语并不料味着优化是不值得的,例如,请查看停止缺点地引用 Donald Knuth 的话!和‘不成熟的优化是恶魔’的谎话。
Python 代码可以优化,并且应当在有意义的时光和地位进行优化。
【编辑推荐】
- Python中的函数与办法 以及Bound Method和Unbound Method
- 用Python多线程实现临盆者花费者模式
- Python收集爬虫实现道理与实现技巧
- 用Python写一个NoSQL数据库
- Python集合set和frozenset的内建办法详解
推荐阅读
Aporeto是一家“云原生”的安然始创公司,旨在确保那些不受信的IT情况的安然性。该公司方才在A轮融资——也就是岁尾产品宣布之前——获得了>>>详细阅读
地址:http://www.17bianji.com/lsqh/35343.html
1/2 1