您的位置:首页 > 编程语言 > Python开发

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的:

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这些硬家伙就不对比了,绝对秒得没影。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: