您的当前位置:首页正文

python比java慢多少

2020-11-27 来源:星星旅游
谁都知道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这些硬家伙就不对比了,绝对秒得没影。