PyPy为什么能让Python比C还快一

来自|机器之心

「如果想让代码运行得更快,您应该使用PyPy。」-Python之父GuidovanRossum

对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要。Python是能够实现这一目标的出色语言,它能够让人们专注于想法本身,而不必过度为代码格式等无聊的事情困扰。

但是,Python有一个致命的缺点:速度比C、C++等语言慢很多。那么,构建一个Python原型测试想法之后,如何将其转变为快速且高性能的工具?通常来说,人们还要再进行一步工作:将Python代码手动转换为C语言的代码。但如果Python原型本身就可以运行得很快,那么转换代码的时间就可以做一些更有意义的事情。

而PyPy,恰好可以解决这一问题。它能够让Python代码运行得比C还快。

importtimefromtermcolorimportcoloredstart=time.time()number=0foriinrange():number+=iprint(colored("FINISHED","green"))print(f"Ellapsedtime:{time.time()-start}s")

为了证明PyPy的速度,使用默认的Python解释器和PyPy运行上述代码,执行一个从整数0加到,,的循环,然后打印出运行时间。运行结果如下:

运行时间PythonvsPyPy这不是学术意义上的评估,但该结果是令人惊叹的。与大约需要10秒钟的默认Python解释器相比,PyPy仅用0.22秒就完成了执行。而且无需进行任何更改就可以直接将Python代码放到PyPy上。而同一台计算机上,等效的C语言实现需要0.32秒,PyPy甚至击败了最快的C语言。为什么PyPy这么快?尽管代码完全相同,但代码的执行方式却大不相同。PyPy提升速度的秘诀是「即时编译(just-in-time


转载请注明:http://www.aierlanlan.com/grrz/24.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了