当前位置: 首页 > news >正文

公司 网站建设深圳工业设计中心

公司 网站建设,深圳工业设计中心,哈尔滨网站建设服务,设计公司的企业使命迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1 简介 Python 是一门应用非常广泛的高级语言#xff0c;但是#xff0c;长久以来#xff0c;Python的运行速度一直被人诟病#xff0c;相比 c/c、java、c#、javascript 等一众高级编程语言#xff0c;完全没有优势。 那… 迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1     简介 Python 是一门应用非常广泛的高级语言但是长久以来Python的运行速度一直被人诟病相比 c/c、java、c#、javascript 等一众高级编程语言完全没有优势。 那么真的没有办法提升 Python 程序的运行速度吗相信看完本文你应该会有答案。 2     示例 这里以找出 1000000 以内的质数为例分别计算下需要花费多长的时间 首先来回顾下什么是质数 质数(Prime number)又称素数指在大于 1 的自然数中除了 1 和该数本身外无法被其他自然数整除(也可定义为只有 1 与该数本身两个因数)。举个例子比如说数字 7从 2 开始一直到 6都不能被它整除只有 1 和它本身 7 才能被 7 整除所以 7 就是一个质数。 下面来看看 python 的代码实现 import math import timedef is_prime(num):if num 2:return Trueif num 1 or not num % 2:return False# 从3开始到int(根号num)1步长是2如3,5,7 ...for i in range(3, int(math.sqrt(num)) 1, 2):if not num % i:return Falsereturn Truedef run_program(N):for i in range(N):is_prime(i)if __name__ __main__:N 1000000start time.time()run_program(N)end time.time()print(end - start) 执行代码可以看到在我的老旧 i5 机器上总共花费了 5 秒多 3     改进 大家都知道解释型语言解释器不产生目标机器代码而是产生中间代码解释器通常会导致执行效率较低。 因此问题就变成了能不能将 python 代码翻译成机器码那执行效率肯定就会大大提升了 numba 就是这么一款工具它是 python 的即时编译器(just-in-time compiler)它使用 LLVM 将 python 代码翻译成机器码特别是在使用 numpy 数组以及循环操作上效果最佳。 numba 的使用比较简单我们不需要更换 python 的解释器只需要将 numba 的装饰器写在 python 方法上当这个带有 numba 装饰器的方法被调用时就会被 just-in-time 即时编译为机器代码然后执行。目前 numba 支持在 X86、ARM 等多种架构上进行动态编译。 使用 numba 之前我们需要安装这个库 pip install numba或者 conda install numba 下面来看看 numba 版本的质数问题 import math import time from numba import njitnjit(fastmathTrue, cacheTrue) def is_prime(num):if num 2:return Trueif num 1 or not num % 2:return Falsefor i in range(3, int(math.sqrt(num)) 1, 2):if not num % i:return Falsereturn Truenjit(fastmathTrue, cacheTrue) def run_program(N):for i in range(N):is_prime(i)if __name__ __main__:N 10000000start time.time()run_program(N)end time.time()print(end - start) 执行上述代码可以看到速度提升了 4 倍左右不到 1 秒效果还是非常明显 最后作为横向比较我们使用 c 语言也写一个类似的程序 #include iostream #include cmath #include time.husing namespace std;bool isPrime(int num) {if (num 2) return true;if (num 1 || num % 2 0) return false;double sqrt_num sqrt(double(num));for (int i 3; i sqrt_num; i 2) {if (num % i 0) return false;}return true; }int main() {int N 1000000;clock_t start, end;start clock();for (int i0; i N; i) isPrime(i);end clock();cout (end - start) / ((double)CLOCKS_PER_SEC);return 0; } 编译后执行可以看到只花了 0.4 秒 4     小结 从上面的对比示例中可以看到使用了 just-in-time compiler 后(numba、pypy 都是类似的实现)代码的执行效率已经直逼 C 等编译型语言了。 5     参考资料 https://numba.readthedocs.io/en/stable/index.html ( https://numba.readthedocs.io/en/stable/index.html ) 6     免费社群
http://www.w-s-a.com/news/762421/

相关文章:

  • 品牌营销策略研究无锡 网站 seo 优化
  • 在线推广网站的方法有哪些织梦网站首页目录在哪
  • 做爰全过程免费网站的视频做网站的几个步骤
  • cpa建站教程青海西宁制作网站企业
  • 简易的在线数据库网站模板网站多服务器建设
  • 成都seo网站建设花店网页模板html
  • 义乌市网站制作网络营销策略名词解释
  • 高端品牌网站建设图片wordpress 资源站主题
  • 上海建设工程监督总站网站电商网站wordpress
  • 网站建设 医院菏泽网站建设熊掌号
  • 成都网站建设企业预约网免费建站流程
  • 网站建设胶州中国政务网站建设绩效评估
  • 合肥知名网站推广胶东国际机场建设有限公司网站
  • asp.ney旅游信息网站下载 简洁濮阳微信网站开发
  • 建设网站专业怎么上传网站程序到空间
  • 县城乡建设局网站微商城小程序哪个好
  • 博物馆门户网站建设优势重庆seo排名系统运营
  • 哪有app制作公司上海seo排名
  • 长沙建站seo公司北京招聘信息
  • 建设网站情况说明范文四川个人证书查询网官网
  • 推广学校网站怎么做公司可以做多个网站吗
  • 游戏网站后台建设郑州定制网站
  • 商务公司网站建设网站建设如何自学
  • 现在建网站可以拖拉式的吗中国国内最新新闻
  • phpstorm网站开发产品logo设计
  • 电子商务网站建设与运营什么是单页面网站
  • 西安优化网站公司南阳微信网站
  • 购物网站线下推广方案佛山快速建站哪家服务专业
  • 临沂网站排名外贸网站推广方法之一
  • 手机网站百度关键词排名查询吕梁网站制作吕梁安全