Au cours de l'examen, je suis tombé sur un code qui est un mélange d'Integer et d'int. Pendant un moment, j'ai pensé qu'il n'y aurait pas de problème car il serait converti par boxing automatique, mais je me demandais quelle était la performance, alors je voudrais le vérifier.
** 1. Modèle avec un mélange de types de référence et de types primitifs **
qiita.java
long begin = 0L;
long end = 0L;
begin = System.currentTimeMillis();
Integer sum = 0;
for(int i = 0; i < 1000000; i++) {
sum += i;
}
end = System.currentTimeMillis();
System.out.println(end - begin + "milliseconde");
** 2. Modèle de type primitif uniquement **
qiita.java
long begin = 0L;
long end = 0L;
begin = System.currentTimeMillis();
int sum = 0;
for(int i = 0; i < 1000000; i++) {
sum += i;
}
end = System.currentTimeMillis();
System.out.println(end - begin + "milliseconde");
--Effectuez un traitement d'ajout de 1 000 000 à l'aide du code source de vérification. Le temps moyen est calculé en mesurant chacune trois fois. Arrondissez la troisième fraction.
** 1. Modèle avec un mélange de types de référence et de types primitifs **
--Première fois: 15 millisecondes --Deuxième fois: 16 millisecondes --Troisième fois: 15 millisecondes --Moyenne: 15,33 millisecondes
** 2. Modèle de type primitif uniquement **
--Première fois: 5 millisecondes --Deuxième fois: 4 millisecondes --Troisième fois: 4 millisecondes --Moyenne: 4,33 millisecondes
Un modèle de type de référence mixte et de type primitif a duré en moyenne 15,33 millisecondes, tandis qu'un modèle de type primitif seulement a fait en moyenne 4,33 millisecondes. On peut voir que cela prend environ quatre fois plus de temps lorsque l'autoboxing fonctionne avec un mélange de types de référence et de types primitifs. Il s'avère qu'il ne devrait pas être auto-boxé sans signification, en fonction du nombre de données, qui est un tas de poussière.
A bientôt (^_^) Noshi
Recommended Posts