免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13507 | 回复: 6
打印 上一主题 下一主题

Pypy比cPython快?你说怎么测 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-26 23:17 |只看该作者 |倒序浏览


还有说某些特定代码Pypy比C快,怎么测?

论坛徽章:
0
2 [报告]
发表于 2011-09-27 11:48 |只看该作者
回复 1# niexining


    我测了一下,pypy性能优势还是很明显的

论坛徽章:
0
3 [报告]
发表于 2011-09-27 11:52 |只看该作者
刚才没注意是range,用了xrange,改成range之后pypy性能没多大影响

论坛徽章:
0
4 [报告]
发表于 2011-10-16 11:43 |只看该作者
回复 3# 3227049


    你和我的运行结果相差怎么那么多?!  使用timeit模块结果可能更准确,但我的time也不至于扭曲成那样子吧?
    我考虑有俩个可能:
    1. pypy一直以来在timeit模块上做手脚,造假 (我以小人之心度一下君子之腹)
    2.  你和我的平台不一样。我的是windows,你的是linux.   倒不是操作系统的问题, 我是说pypy的安装策略可能不一样: 据说pypy可以使用llvm(低层虚拟机),而没有llvm也   可以运行。具体机制我不清楚。是不是你的pypy在llvm上,而我的没有。我的pypy是直接下载的一个msi包傻瓜安装上去的。

到底是什么原因? 希望得到指点。any suggestion would be appreciated.

论坛徽章:
0
5 [报告]
发表于 2011-10-19 10:22 |只看该作者
本帖最后由 niexining 于 2011-10-19 11:32 编辑

没有理我。自己再测了一下。好像pypy确实是快(windows下也一样)。
按照3237049牛人的标准测试方法(虽然我不懂timeit(count)的count是干嘛的)

test.py的内容:
  1. #coding: utf-8
  2. def test():
  3.   for i in range(300000): pass
  4. def main():
  5.   from timeit import Timer
  6.   import sys
  7.   count = 1 if len(sys.argv)==1 else int(sys.argv[1])
  8.   print Timer("test()","from __main__ import test").timeit(count)
  9. if __name__ == "__main__": main()
复制代码
然后再按我的time测试方法(但仿照3237049牛人的sys.argv):

后一个python测试直接让我的电脑卡了好几分钟,最后不得不使用任务管理器结束cmd进程
test2.py的内容:
  1. import time
  2. import sys
  3. x=300000 if len(sys.argv)==1 else 300000*int(sys.argv[1])
  4. t1=time.time()
  5. for i in range(x): pass
  6. print time.time()-t1
复制代码
难道是我测错了,交互模式的问题? 交互模式下又测一次,还是pypy快:


完全按照那天的代码再测一测,还是pypy快:



-----------------------------------------

pypytest.png (68.37 KB, 下载次数: 51)

pypytest.png

论坛徽章:
0
6 [报告]
发表于 2011-10-19 11:27 |只看该作者
这样的测试结果百年难遇啊:


这是通常的测试结果:

论坛徽章:
0
7 [报告]
发表于 2011-10-19 11:44 |只看该作者
回复 2# 3227049

嗯,谢谢。我又测了一下,确实是。不知道我头次的测试结果怎么出来的,百年难遇啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP