57 votes

Existe-t-il un moyen correct de passer des arguments dans slf4j ?

J’utilise slf4j pour tracer les informations. Mon code est

Ce qui serait le mécanisme préféré pour enregistrer les traces.

62voto

sbridges Points 16284

3 est le meilleur.

3 et 2 génèrent le même (ou presque) bytecode, mais 3 est plus facile à taper et est plus court, donc 3 est meilleur que 2.

Si la trace n’est pas activée, 1 doit effectuer une concaténation de chaînes (« Temps nécessaire pour stocker " + nombre + ....) ce qui est un peu cher, tandis que 2 ne fait la concaténation de chaîne que si la trace est activée, c’est pourquoi 3 est meilleur que 1.

7voto

La 3ème variante est la meilleure.

En fait, le 1er cas est une concaténation de chaîne via StringBuilder.

Les 2ème et 3ème cas sont les mêmes. Ils doivent mettre les valeurs entières en boîte sur Integer (ou un autre objet), puis créer un tableau pour les emballer.

Le test simple sur ma machine dit que la 3ème variante est meilleure environ 8 fois au cas où aucune journalisation n’aurait été exécutée (56ns vs 459ns).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X