jerryxjr1220 发表于 2017-7-11 17:48:09

加一行代码让python的运行速度提高100倍

本帖最后由 jerryxjr1220 于 2017-7-12 12:47 编辑

python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。

“一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。

我们来看一下这个最简单的例子,从1一直累加到1亿。

最原始的代码:
import time
def foo(x,y):
        tt = time.time()
        s = 0
        for i in range(x,y):
                s += i
        print('Time used: {} sec'.format(time.time()-tt))
        return s

print(foo(1,100000000))

结果:
Time used: 6.779874801635742 sec
4999999950000000

我们来加一行代码,再看看结果:
**** Hidden Message *****

结果:
Time used: 0.04680037498474121 sec
4999999950000000

是不是快了100多倍呢?

@SixPy @冬雪雪冬 @~风介~ @小甲鱼

感谢@小甲鱼 设精!

**** Hidden Message *****

jerryxjr1220 发表于 2017-7-11 17:50:54

有了这个神器以后,是不是以前“欧拉计划”中许多暴力解法算不出的问题都能算出来了呢?{:10_267:}

kio 发表于 2017-7-11 18:10:50

看看

~风介~ 发表于 2017-7-11 18:43:31

看起来很厉害的样子~{:10_256:}

master-c 发表于 2017-7-11 18:55:57

看看

cngrand 发表于 2017-7-11 19:37:25

xx

DuiJle 发表于 2017-7-11 19:37:33

好像好棒棒啊

pythonDemo 发表于 2017-7-11 19:48:44

看看

njsmajun 发表于 2017-7-11 20:03:20

试试看到底如何

太空军校生 发表于 2017-7-11 20:37:58

学习学习楼主的方法。

SixPy 发表于 2017-7-11 20:41:11

这样就挺快的了
import numpy as np
def f():return np.sum(np.arange(1,10**8,dtype=np.int64))

冬雪雪冬 发表于 2017-7-11 21:02:58

如何安装numba?
我用pip安装报错。

wolaiye110 发表于 2017-7-11 21:19:44

冬雪雪冬 发表于 2017-7-11 21:22:02

我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。
Time used: 0.060042619705200195 sec
887459712

小锟 发表于 2017-7-11 22:18:49

jerryxjr1220 发表于 2017-7-11 22:31:03

冬雪雪冬 发表于 2017-7-11 21:22
我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。

我运算的是对的啊,jit只是重新编译了python的代码,但并不会改变你原有的函数,所以对结果是没有影响的。

persever 发表于 2017-7-11 22:34:39

???、看看 学习一下

小甲鱼 发表于 2017-7-11 23:46:02

赞同,必须设精!{:10_288:}

哭吧叫吧 发表于 2017-7-12 08:29:21

{:10_279:}{:10_279:}{:10_279:}

ButcherRabbit 发表于 2017-7-12 09:11:11

看起来很厉害的样子~
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 加一行代码让python的运行速度提高100倍