鱼C论坛

 找回密码
 立即注册
查看: 111571|回复: 3931

[技术交流] 加一行代码让python的运行速度提高100倍

    [复制链接]
发表于 2017-7-11 17:48:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

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

  9. print(foo(1,100000000))
复制代码


结果:
Time used: 6.779874801635742 sec
4999999950000000

我们来加一行代码,再看看结果:
游客,如果您要查看本帖隐藏内容请回复


结果:
Time used: 0.04680037498474121 sec
4999999950000000

是不是快了100多倍呢?

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

感谢@小甲鱼 设精!

游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 16荣誉 +42 鱼币 +50 贡献 +16 收起 理由
ATTO + 1 + 3 + 1 无条件支持楼主!
悲哀的猫 + 1 + 1 感谢楼主无私奉献!
Python小白程亮 + 5 + 5 + 3
maxels + 2 感谢楼主无私奉献!
PrintfZhiyu + 1 + 1 + 1 感谢楼主无私奉献!
学学看看 + 1 + 1 鱼C有你更精彩^_^
幻世伽蓝 + 3
kykio + 5 + 5 + 3
hehex + 2 + 2 感谢楼主无私奉献!
流月飞星 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-11 17:50:54 | 显示全部楼层
有了这个神器以后,是不是以前“欧拉计划”中许多暴力解法算不出的问题都能算出来了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-7-11 18:10:50 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-11 18:43:31 | 显示全部楼层
看起来很厉害的样子~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 18:55:57 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-11 19:37:25 | 显示全部楼层
xx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-11 19:37:33 | 显示全部楼层
好像好棒棒啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 19:48:44 From FishC Mobile | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-11 20:03:20 | 显示全部楼层
试试看到底如何
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 20:37:58 | 显示全部楼层
学习学习楼主的方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 20:41:11 | 显示全部楼层
这样就挺快的了
  1. import numpy as np
  2. def f():return np.sum(np.arange(1,10**8,dtype=np.int64))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 21:02:58 | 显示全部楼层
如何安装numba?
我用pip安装报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2017-7-11 21:19:44 From FishC Mobile | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 21:22:02 | 显示全部楼层
我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。
  1. Time used: 0.060042619705200195 sec
  2. 887459712
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-11 22:18:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

我运算的是对的啊,jit只是重新编译了python的代码,但并不会改变你原有的函数,所以对结果是没有影响的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 22:34:39 | 显示全部楼层
???、看看 学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 23:46:02 | 显示全部楼层
赞同,必须设精!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-12 08:29:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-12 09:11:11 | 显示全部楼层
看起来很厉害的样子~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 15:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表