文档章节

PyPy 与 Python 的一个小 timeit (二)

水果糖
 水果糖
发布于 2016/05/09 23:30
字数 262
阅读 22
收藏 1
点赞 2
评论 0


前面做了PyPy 与C Python 对比;


这次了解到有个叫nuitka 的玩意存在,号称“将Python 无缝 转换成C++(100%)”;


既然如此叼? 好的,Candy特意编译了一个 Python2.7.11 安装好nuitka 后进行编译。

代码与

[root@server ~]# time ./demo.exe

real    0m22.646s
user    0m22.632s
sys     0m0.007s
[root@server ~]#


 经过此役后,发现user对比 C Python 性能提升2倍,但是还是比不上PyPy的优化程度。



让我们再来看一段代码,abc.py 的代码如下:

def test(n,m):
    m=m
    vals = []
    keys = []
    for i in xrange(m):
        vals.append(i)
        keys.append('a%s'%i)
    d = None
    for i in xrange(n):
        d = dict(zip(keys, vals))
    return d
if __name__ == '__main__':
    test(1000000,100)



Python 2.7:

[root@server ~]# time python2.7 abc.py

real    0m11.284s
user    0m11.270s
sys     0m0.012s


PyPy:

[root@server ~]# time pypy abc.py

real    0m9.997s
user    0m6.752s
sys     0m1.549s



nuitka :

[root@server abc.dist]# time ./abc.exe

real    0m10.717s
user    0m10.707s
sys     0m0.006s



具体使用化解,请大家自行斟酌! 


这里只给出了一个针对性、专业性不是非常强的测试,很多情况也没考虑到;细节方面,还请各位自己测试。



© 著作权归作者所有

共有 人打赏支持
水果糖
粉丝 15
博文 125
码字总数 51701
作品 0
深圳
程序员
Python3入门机器学习(二)- Jupyter Notebook与Numpy的使用

Jupyter Notebook 高级-魔法命令 1.%run %run 执行python脚本,并将脚本中的函数加载 可以直接使用import命令导入本机目录下的包 2.%timeit %timeit 测试代码的性能 测试结果表明,运行了一千...

Meet相识_bfa5 ⋅ 04/03 ⋅ 0

各种 Python 实现的简单介绍与比较

(点击上方公众号,可快速关注) 编译:Daetalus http://python.jobbole.com/82703/ 当谈到Python时,一般指的是CPython。但Python实际上是一门语言规范,只是定义了Python这门语言应该具备哪...

Python开发者 ⋅ 04/25 ⋅ 0

python集训营学习:第一章 python基础

1.python介绍 python是一门解释型语言,代码想运行,必须通过解释器执行 解释器种类有CPython、IPython、PyPy、Jython、IronPython等 2.变量 声明变量 变量定义规则 变量名只能是字母、数字或...

淡水螃蟹 ⋅ 05/16 ⋅ 0

Argparse模块:python快捷实现命令行操作

python中的argparse模块可以方便地实现命令行解释操作,从而实现丰富的功能接口。 首先我们来看一段Shell代码: 接触过linux的人都知道,上面的一段代码中使用了‘ls’这个命令行参数,这个‘...

oldpan ⋅ 2017/11/13 ⋅ 0

在 MaxCompute UDF 中运行 Scipy

新版 MaxCompute Isolation Session 支持 Python UDF。也就是说,Python UDF 中已经可以跑二进制包。刚才以 Scipy 为例踩了一下坑,把相关的过程分享出来。 下载 Scipy 包并上传资源 首先,从...

继盛 ⋅ 05/10 ⋅ 0

python wraps那点儿事儿

一个需求的实现 当前,我们有这么一个小的需求:通过装饰器来计算函数执行的时间 计算出这个函数的执行时长 def add(x,y): # add = TimeIt(add) time.sleep(1) 'this is add' return x + y 装...

zuzhou ⋅ 06/05 ⋅ 0

使用pytest进行Python自动化测试

简介与安装 pytest是一个针对Python的自动化测试框架,它可以使简单的和可扩展的测试变得容易。使用pytest进行测试是简洁和可读的,不需要样板代码,这使得我们可以很方便地进行自动化测试。...

郗南枫 ⋅ 06/17 ⋅ 0

Python:经过了十几年,你们还没有消除的对我的误解吗?

摘要: 大学毕业到现在用的最多的编程语言还是C,C++,后来学习了一下Python,觉得Python是门学了不后悔的语言。尤其适合非程序员学习,作为青少年学习计算机的首门语言也不错,大学生学习计...

雁横 ⋅ 05/03 ⋅ 0

Python3.6实现12306火车票自动抢票,附源码

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理...

猫咪编程 ⋅ 06/05 ⋅ 0

python开源工具列表【持续更新】

以下是个人在工作中整理的一些python wheel,供参考。 这个列表包含与网页抓取和数据处理的Python库 网络 通用urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库(基于pycurl)。...

武耀文 ⋅ 04/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

来自一个优秀Java工程师的简历

写在前面: 鉴于前几天的一份前端简历,虽然带着很多不看好的声音,但却帮助了很多正在求职路上的人,不管评论怎么说,我还是决定要贴出一份后端的简历。 XXX ID:357912485 目前正在找工作 ...

颖伙虫 ⋅ 19分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部