Everyone knows that the biggest shortcoming of Python is poor performance. There is no specific data on the Internet about how bad it is. I did a test today.
First of all, let me state that this simple test is just a time-consuming comparison of array creation and statistics. I thought that array operations were Python’s strength, and there shouldn’t be much difference. But the results are shocking: Python takes more than 14 times to create an array than Java, and statistics takes more than 24 times as long as Java.
Hardware environment:
Win8.1 64-bit, i5 4670K ultra to 4.2GHZ, memory 8G
Software:
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))
Result:
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)); } }
Result:
Create lvArray Use:257 lvArray summary is :500050000000 Calculate lvArray Use:39
I originally thought that Python would use parallel computing for list and array method operations, but it didn’t, which feels like a pity.
I won’t compare these hard guys like C/Delphi, they will definitely disappear in seconds.
The above is the detailed content of How much slower is python than java. For more information, please follow other related articles on the PHP Chinese website!