• 利用 psyco 让 Python 程序执行更快


    Python 和其他的脚本语言在性能上跟一些编译语言(如C语言)比较要差不少,例如这里有两个用 C 和 Python 语言编写的斐波纳契数列计算程序:

    C语言:

    01int fib(int n){
    02   if (n < 2)
    03     return n;
    04   else
    05     return fib(n - 1) + fib(n - 2);
    06}
    07 
    08int main() {
    09    fib(40);
    10    return 0;
    11}
    Python语言:​
    1def fib(n):
    2  if n < 2:
    3     return n
    4  else:
    5     return fib(n - 1) + fib(n - 2)
    6fib(40)
    下面是执行的时间比较:
    1$ time ./fib
    23.099s
    3$ time python fib.py
    416.655s

    正如我们说预想的,C 程序比 Python 要快很多,在我们这个例子中要快 5 倍之多。

    尽管在 Web 环境中,指令执行的速度并不重要,因为瓶颈是在 I/O 上。但我也同时在其他地方使用 Python ,因此让我们来看看如何优化 Python 程序的执行速度。

    首先需要安装 Psyco,在 Linux 下可以这样:

    1sudo apt-get install python-psyco
    然后修改 Python 脚本来调用 psyco:
    1import psyco
    2psyco.full()
    3 
    4def fib(n):
    5  if n < 2:
    6     return n
    7  else:
    8     return fib(n - 1) + fib(n - 2)
    9fib(40)
    再次执行的时间是:
    1$ time python fib.py
    23.190s

    只需要 3 秒钟,使用 psyco 后 Python 的执行速度居然跟 C 语言相差无几。Psyco 通过即时编译代码避免逐行解释执行来提升运行速度的。

    现在将我大部分 Python 代码加上下列脚本来利用 Psyco 提升运行速度:

    1try:
    2    import psyco
    3    psyco.full()
    4except ImportError:
    5    pass # psyco not installed so continue as usual

    英文原文, OSCHINA翻译(转载请注明出处)





  • 相关阅读:
    c#中枚举的使用
    WEB页面下载内容导出excel
    浏览器使用说明
    ChromiumWebBrowser 禁用右键菜单
    ExpressionHelp2
    安装T4环境
    打印功能
    操作图片
    软件开发中的框架概念和技术路线概念
    Grpc-Client引用Server的proto文件时Build Fail
  • 原文地址:https://www.cnblogs.com/djinmusic/p/2850498.html
Copyright © 2020-2023  润新知