Heim  >  Artikel  >  Backend-Entwicklung  >  Wie viel langsamer ist Python als Java?

Wie viel langsamer ist Python als Java?

anonymity
anonymityOriginal
2019-06-12 11:39:473263Durchsuche

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.

Wie viel langsamer ist Python als Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn