Maison >développement back-end >Tutoriel Python >À quel point Python est-il plus lent que Java

À quel point Python est-il plus lent que Java

anonymity
anonymityoriginal
2019-06-12 11:39:473310parcourir

Tout le monde sait que le plus gros défaut de Python est ses mauvaises performances. Il n'y a pas de données spécifiques sur Internet sur la gravité de ce problème. J'ai fait un test aujourd'hui.

À quel point Python est-il plus lent que Java

Tout d'abord, permettez-moi de préciser que ce test simple n'est qu'une comparaison fastidieuse de la création de tableaux et des statistiques. Je pensais que les opérations sur les tableaux sont la force de Python, et là. Il ne devrait pas y avoir beaucoup de différence. Mais les résultats sont choquants : Python prend plus de 14 fois plus de temps pour créer un tableau que Java, et les statistiques prennent plus de 24 fois plus de temps que Java.

Environnement matériel :

Win8.1 64 bits, i5 4670K ultra à 4,2GHZ, mémoire 8G

Logiciel :

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))

Résultat :

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));
}
}

Résultat :

Create lvArray Use:257
lvArray summary is :500050000000
Calculate lvArray Use:39

Au départ, je pensais que Python utiliserait le calcul parallèle pour les opérations de méthodes de liste et de tableau, mais ce n'est pas le cas, ce qui semble dommage.

Je ne comparerai pas ces durs comme C/Delphi, ils vont définitivement disparaître en quelques secondes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn