Python到底有多慢? -- 比JAVA慢超10倍!
2015-12-17 14:35
537 查看
谁都知道Python最大的缺点就是性能差,到底多差网上没有具体数据,今天自己做了一个测试 。
首先要声明一下, 这个简单测试只是通过对阵列的建立、统计的耗时比较, 本以为阵列操作是python的强项,应该差别不大,但结果让人大跌眼镜:建立阵列Python耗时是java的 14倍多, 统计耗时Python是java的24倍多。
硬件环境:
Win8.1 64位、i5 4670K 超到4.2GHZ,内存8G
软件:
python 3.4, JDK 1.6
Phton的:
结果:
Create lvArray Use:3654.559135
lvArray summary is :500050000000
Calculate lvArray Use:962.199926
[Finished in 6.3s]
========
JAVA的:
结果:
Create lvArray Use:257
lvArray summary is :500050000000
Calculate lvArray Use:39
原本以为Python会在列表、阵列方法的运算用到并行计算,但没有,感觉很可惜。
C/Delphi这些硬家伙就不对比了,绝对秒得没影。
首先要声明一下, 这个简单测试只是通过对阵列的建立、统计的耗时比较, 本以为阵列操作是python的强项,应该差别不大,但结果让人大跌眼镜:建立阵列Python耗时是java的 14倍多, 统计耗时Python是java的24倍多。
硬件环境:
Win8.1 64位、i5 4670K 超到4.2GHZ,内存8G
软件:
python 3.4, JDK 1.6
Phton的:
import time c_rows=10000 c_cols=10000 lvStart=time.time() #print(lvStart) # 建立 [10000][10000]的整数阵列 lvArr=[[] for row in range(1,c_rows+1,1)] lvRows=len(lvArr) for row in range(0,lvRows,1): lvArr[row]=[col for col in range(1,c_cols+1,1)] lvEnd=time.time() print("Create lvArray Use:%f" %((lvEnd-lvStart)*1000)) lvStart=time.time() lvSum=sum(list(map(sum,lvArr))) lvEnd=time.time() print("lvArray summary is :%d" %(lvSum)) print("Calculate lvArray Use:%f" %((lvEnd-lvStart)*1000))
结果:
Create lvArray Use:3654.559135
lvArray summary is :500050000000
Calculate lvArray Use:962.199926
[Finished in 6.3s]
========
JAVA的:
public class Test { public static void main(String[] args) { long lvStart = System.currentTimeMillis(); int[][] lvArr = new int[10000][10000]; for (int row = 0; row < lvArr.length; row++) { for (int col = 0; col < lvArr[row].length; col++) { lvArr[row][col] = col + 1; } } long lvEnd = System.currentTimeMillis(); System.out.println(String.format("Create lvArray Use:%d", lvEnd - lvStart)); lvStart = System.currentTimeMillis(); long lvSum = 0; for (int row = 0; row < lvArr.length; row++) { for (int col = 0; col < lvArr[row].length; col++) { lvSum += lvArr[row][col]; } } lvEnd = System.currentTimeMillis(); System.out.println(String.format("lvArray summary is :%d", lvSum)); System.out.println(String.format("Calculate lvArray Use:%d", lvEnd-lvStart)); } }
结果:
Create lvArray Use:257
lvArray summary is :500050000000
Calculate lvArray Use:39
原本以为Python会在列表、阵列方法的运算用到并行计算,但没有,感觉很可惜。
C/Delphi这些硬家伙就不对比了,绝对秒得没影。
相关文章推荐
- 关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file
- clean postgre single table
- python注释
- Python文件操作
- python爬取的豆瓣top250的一些信息
- Python异常处理和反射
- Python装饰器
- Python异常处理
- python内置函数大全
- 最小生成树,克鲁斯卡尔算法(Python实现)
- python --标准库 路径与文件 (os.path包, glob包)
- python3.5+selenium打开chrome浏览器,去掉ignore-certificate-errors提示
- [Ubuntu]Python的Web开发环境之mod_wsgi
- python--标准库 时间与日期 (time, datetime包)
- Python:浅拷贝与深拷贝copy.deepcopy()
- Python脚本实现项目工程自动远程部署
- Python]新手写爬虫全过程
- Python脚本实现发送邮件功能
- python_类的设计模式
- python科学计算库安装