Maison >développement back-end >Tutoriel Python >À quel point Python est-il plus lent que Java
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.
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!