QQ登录

只需一步,快速开始

搜索
鱼C论坛笔记大赛成绩公示
查看: 5384|回复: 550

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

  [复制链接]
累计签到:300 天
连续签到:7 天
最佳答案
47 
发表于 2017-7-11 17:48:09 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

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 @冬雪雪冬 @~风介~ @小甲鱼

感谢@小甲鱼 设精!

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

评分

参与人数 4荣誉 +19 鱼币 +17 贡献 +4 收起 理由
鬼人 + 5 + 5 + 3 感谢楼主无私奉献!
新手·ing + 5 + 5
小甲鱼 + 6 + 6 感谢楼主无私奉献!
lh625243422 + 3 + 1 + 1 感谢楼主无私奉献!

查看全部评分

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:300 天
连续签到:7 天
最佳答案
47 
 楼主| 发表于 2017-7-11 17:50:54 | 显示全部楼层
有了这个神器以后,是不是以前“欧拉计划”中许多暴力解法算不出的问题都能算出来了呢?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:79 天
连续签到:1 天
最佳答案
1 
发表于 2017-7-11 18:10:50 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1214 天
连续签到:5 天
最佳答案
49 
发表于 2017-7-11 18:43:31 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:50 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 18:55:57 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 19:37:25 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:6 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 19:37:33 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!

尚未签到

最佳答案
0 
发表于 2017-7-11 19:48:44 From FishC Mobile | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 20:03:20 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:725 天
连续签到:1 天
最佳答案
2 
发表于 2017-7-11 20:37:58 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:231 天
连续签到:1 天
最佳答案
186 
发表于 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))
复制代码
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:658 天
连续签到:33 天
最佳答案
443 
发表于 2017-7-11 21:02:58 | 显示全部楼层
如何安装numba?
我用pip安装报错。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 21:19:44 From FishC Mobile | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:658 天
连续签到:33 天
最佳答案
443 
发表于 2017-7-11 21:22:02 | 显示全部楼层
我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。
  1. Time used: 0.060042619705200195 sec
  2. 887459712
复制代码
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:161 天
连续签到:62 天
最佳答案
14 
发表于 2017-7-11 22:18:49 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:300 天
连续签到:7 天
最佳答案
47 
 楼主| 发表于 2017-7-11 22:31:03 | 显示全部楼层
冬雪雪冬 发表于 2017-7-11 21:22
我在Anaconda下,用conda install numba安装成功了。但运算上述的例子结果不正确。

我运算的是对的啊,jit只是重新编译了python的代码,但并不会改变你原有的函数,所以对结果是没有影响的。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:1 天
连续签到:1 天
最佳答案
0 
发表于 2017-7-11 22:34:39 | 显示全部楼层
???、看看 学习一下
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:2185 天
连续签到:16 天
最佳答案
146 
发表于 2017-7-11 23:46:02 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:169 天
连续签到:2 天
最佳答案
0 
发表于 2017-7-12 08:29:21 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:54 天
连续签到:2 天
最佳答案
53 
发表于 2017-7-12 09:11:11 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-9-23 20:56 Powered by Discuz! X2.5 Theme by dreambred

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