作家
登录

如何让Python像Julia一样快地运行

作者: 来源: 2017-05-22 13:13:15 阅读 我要评论

  • randmatstat 应用 Numpy 可将速度进步 2 倍。
  • randmatmul 很简单,没有对象可应用到它之上。
  • 安装它可能很麻烦。推荐应用像 Anaconda 如许的 Python 发行版或一个已安装了 Numba 的 Docker 镜像。完成安装后,我们导入它的 jit 编译器:

    包含所有 7 个示例的完全代码的 Notebook 可在此处获得。

    我们在一缸莨狁中总结一下我们的结不雅。我们给出了在最初的 Python 代码与优化的代码之间实现的加快。我们还给出了对 Julia 团队应用的每个基准测试示例应用的对象。

    这缸莨狁注解,在前 4 个示例中,优化的 Python 代码比 Julia 更快,后 3 个示例更慢。请留意,为了公平起见,对于 Fibonacci,我应用了递归代码。

    无论若何,可以说,在这个小型基准测试上,应用精确的对象时,Python 的机能与 Julia 的机能平起平坐。相反地,我们也可以说,Julia 的机能与编译后的

    Python 平起平坐。推敲到 Julia 不须要对代码进行任何注释或修改,所以这本身就很有趣。

    弥补解释

    1. def fib_seq(n): 
    2.  
    3.    if n < 2: 
    4.  
    5.      return n 
    6.  
    7.    a,b = 1,0 
    8.  
    9.    for i in range(n-1): 
    10.  
    11.      a,b = a+b,a 
    12.  
    13.    return a 

    我们暂停一会儿。我们已经看到在 Python 代码机能至关重要时,应当应用很多对象:

    • 应用 line_profiler 履行分析。
    • 编写更好的 Python 代率攀来避免不须要的计算。
    • 应用向量化的操作和经由过程 Numpy 来广播。
    • 应用 Cython 或 Numba 编译。

    应用这些对象来懂得它们在哪些处所很有效。与此同时,请谨慎应用这些对象。分析您的代码,以便可以将精力放在值得优化的处所。重写代率攀来让它变得更快,有时会让它难以懂得或通用性降低。是以,仅在获得的加快物有所值时这么做。Donald Knuth 曾经恰到好处地提出了这条建议:

    然则请留意,Knuth 的引语并不料味着优化是不值得的,例如,请查看停止缺点地引用 Donald Knuth 的话!和‘不成熟的优化是恶魔’的谎话。

    Python 代码可以优化,并且应当在有意义的时光和地位进行优化。

    【编辑推荐】

    1. Python中的函数与办法 以及Bound Method和Unbound Method
    2. 用Python多线程实现临盆者花费者模式
    3. Python收集爬虫实现道理与实现技巧
    4. 用Python写一个NoSQL数据库
    5. Python集合set和frozenset的内建办法详解
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      云原生安全初创公司Aporeto融资1120万美元

    Aporeto是一家“云原生”的安然始创公司,旨在确保那些不受信的IT情况的安然性。该公司方才在A轮融资——也就是岁尾产品宣布之前——获得了>>>详细阅读


    本文标题:如何让Python像Julia一样快地运行

    地址:http://www.17bianji.com/lsqh/35343.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)