System.out.println et optimisation - Java - Programmation
Marsh Posté le 14-12-2004 à 11:25:06
Ca ralentit ton appli de façon considérable.
Pour t'en convaincre essaye cette classe :
Code :
|
Puis relance la après avoir mis le System.ou.println("" ) en commentaire
Marsh Posté le 14-12-2004 à 11:40:12
Ok !
Donc si j'utilise log4j (à la place du System.out), cela ralenti autant que si je fait des System.out ?
En gros il ne faut rien mettre ?
Marsh Posté le 14-12-2004 à 12:00:20
Autre question ... le temps que vous repondez a celle d'avant Toujours pour l'optmisation
Disons que j'ai un package ("A" ) avec 20 classes dedans
Dans une classe qu'on va appeller Voiture, d'un autre package ("B" ), je n'utilise que une classe("Marque.class" ) du package "A".
Mais dans le code de Voiture.java je fais :
Code :
|
Vaut-il mieux que je fasse , en terme de performance :
Code :
|
ou c'est negligeable ?
Marsh Posté le 14-12-2004 à 12:11:40
mazda3 a écrit : Ok ! |
Evidemment, ça ralentit un peu par rapport à ne rien mettre mais ça reste bien mieux que le System.out
Code :
|
pour moi, avec le System.out.println(), ça mettait 3 sec, avec Log4j ça met 0.8 sec
Marsh Posté le 14-12-2004 à 12:34:05
mazda3 a écrit : Autre question ... le temps que vous repondez a celle d'avant Toujours pour l'optmisation
|
Ca change strictement rien. Si du décompile ton application, tu verra que le import ne figure nulle part et que tous tes appels à des classes voient utilisent le chemin complet, genre si t'as dans ton progs :
Code :
|
Ton programme pseudo-compilé va remplacer tout ça part :
Code :
|
Le import sert juste lors de l'écriture du programme, pour que t'ai pas besoin de taper tout le chemin complet
EDIT :
Personnellement, j'utilise toujours import A.Marques au lieu de A.*, comme ça en regardant le début du fichier, je vois tout de suite ce que j'utilise...
Marsh Posté le 14-12-2004 à 14:31:08
bidem a écrit : Ca ralentit ton appli de façon considérable. |
mouais ... mais ton exemple n'est pas correcte : là tu écris dans la sortie standard alors que pour lui, c'est redirigé dans un fichier ce qui est plus rapide ...
Marsh Posté le 14-12-2004 à 11:13:47
Voilà, j'ai fait une appli qui date de "il y a longtemps" et à cette époque je ne connaissais pas encore log4j et je me contentais de faire plein de "System.out.println" pour debugger mon appli.
Maintenant je me retrouve avec une appli qui me sort en une journée plus de 5mo de texte dans le catalina.out (que des messages de debug).
A votre avis, en enlevant tout ces messages, mon appli sera mieux optimisé niveau temps d'execution ? En gros, ces sorties de textes ralentissent-ils mon appli ou sont négligables ?
Merci de votre aide