Heim > Artikel > Backend-Entwicklung > Wie viel langsamer ist Python als Java?
Jeder weiß, dass das größte Manko von Python die schlechte Leistung ist. Es gibt im Internet keine konkreten Daten darüber, wie schlecht es heute ist.
Lassen Sie mich zunächst feststellen, dass dieser einfache Test nur ein zeitaufwändiger Vergleich der Array-Erstellung und der Statistiken ist. Ich dachte, dass Array-Operationen die Stärke von Python sind, und da ist es Es sollte kein großer Unterschied sein, aber die Ergebnisse sind schockierend: Python benötigt mehr als 14 Mal zum Erstellen eines Arrays als Java, und Statistiken benötigen mehr als 24 Mal so lange wie Java.
Hardwareumgebung:
Win8.1 64-Bit, i5 4670K Ultra bis 4,2 GHz, Speicher 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))
Ergebnis:
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)); } }
Ergebnis:
Create lvArray Use:257 lvArray summary is :500050000000 Calculate lvArray Use:39
Ich dachte ursprünglich, dass Python paralleles Rechnen für Listen- und Array-Methodenoperationen verwenden würde, aber das war nicht der Fall, was schade ist.
Ich werde diese harten Kerle wie C/Delphi nicht vergleichen, sie werden definitiv in Sekundenschnelle verschwinden.
Das obige ist der detaillierte Inhalt vonWie viel langsamer ist Python als Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!