加一行代码让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 *****
有了这个神器以后,是不是以前“欧拉计划”中许多暴力解法算不出的问题都能算出来了呢?{:10_267:} 看看
看起来很厉害的样子~{:10_256:} 看看
xx 好像好棒棒啊 看看 试试看到底如何 学习学习楼主的方法。 这样就挺快的了
import numpy as np
def f():return np.sum(np.arange(1,10**8,dtype=np.int64)) 如何安装numba?
我用pip安装报错。 我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。
Time used: 0.060042619705200195 sec
887459712 哇 冬雪雪冬 发表于 2017-7-11 21:22
我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。
我运算的是对的啊,jit只是重新编译了python的代码,但并不会改变你原有的函数,所以对结果是没有影响的。 ???、看看 学习一下 赞同,必须设精!{:10_288:} {:10_279:}{:10_279:}{:10_279:} 看起来很厉害的样子~