Je recherche une fonctionnalité ou un logiciel, qui me permettra de profiler facilement mon temps d'exécution de la méthode et de choisir ce qu'il faut profiler par filtre à colis. P>
Je sais, c'est le profileur 101. J'utilise le profileur TPTP. Mais je ne suis pas content de ça. Pour être franc, je ne comprends tout simplement pas comment cela fonctionne, et lorsque je profile ma demande (lancez le serveur en mode de profilage), il faut ne rien faire pour ne rien faire. (Eh bien, pas ce que j'attends: une simple sortie de temps d'exécution) p>
Donc, je fais le profilage moi-même avec du temps système (ajoutez une ligne au début et à la fin des méthodes). Ce n'est pas si grave. p>
Ma question est la suivante: je veux mesurer le temps système avant et après une méthode d'appel avec le Spring AOP, pouvez-vous me donner la direction? C'est une bonne / mauvaise idée? La base de code est assez grande et nous n'avons pas de tests d'unités, ne peut-il pas être "dangereux"? P>
Je ne demande pas de code, je pense que je peux le faire moi-même avec ce type de lien: http://static.springsource.org/spring/docs/ 2.5.x / Référence / AOP.HTML P>
Mais si vous avez un bon tutoriel (jamais fait AOP avant, connais le concept), je le prends. P>
4 Réponses :
L'approche de l'AOP fonctionnerait mais en fonction de la manière dont vous envisagez de loger les informations pourraient lui-même effectifier la performance - simplement en être conscient de cela, assurez-vous que la journalisation est efficace la plus efficace et assurez-vous que votre erreur en manipulait sur le point votre aspect. p>
Vous voudrez peut-être aussi regarder comme Visual VM - J'ai été impressionné par cet outil, c'est Facile à utiliser et a été capable de me fournir simplement les informations dont j'avais besoin lorsque je l'ai utilisé la dernière fois. P>
Pouvez-vous s'il vous plaît répondez à ceci: Stackoverflow .com / questions / 44070523 / ...
Il y a un support intégré pour cela au printemps.
J'ai essayé de chercher du tutoriel mais surprenant, je n'en ai pas trouvé un pour que je puisse essayer de l'expliquer ici. (Edit: J'ai ajouté cet exemple à mon blog Ici ) p>
Fondamentalement, ce dont vous avez besoin est d'étendre la classe CustomizableTreCeTinterceptor comme ceci: p>
<!-- Tracing --> <bean name="traceInterceptor" class="MyTraceInterceptor" dependency-check="none"> <property name="enterMessage" value="ENTER: $[targetClassShortName].$[methodName]($[arguments])"/> <property name="exitMessage" value="EXIT: $[targetClassShortName].$[methodName]() : $[invocationTime]ms : $[returnValue]"/> </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" dependency-check="none"> <property name="beanNames" value="*RequestListener,*Notifier"/> <property name="proxyTargetClass" value="true"/> <property name="interceptorNames"> <list> <value>traceInterceptor</value> </list> </property> <property name="order" value="2"/> </bean>
Word of AVERTISSEMENT Ici, ceci est lié à la chronomètre à ressort qui spécifie le temps d'exécution dans la SP. Vous ne pouvez pas le changer à NS Afaik.
@Jon, Gregory - pouvez-vous s'il vous plaît répondez à ceci: Stackoverflow.com/questions/44070523/...
Outre VisualvM, que Nick a mentionné un autre logiciel (et gratuitement pour le développement) est Oracle Jrockit Mission Control . Sa console de gestion a la capacité A> Aux appels de profil simples de certaines méthodes (plus il y a plus d'options de profilage et définitivement plus rapidement que TPTP). P>
Comme avec le temps de mesure du système avant / après les appels de la méthode: il fonctionne essentiellement, mais il y a des "défauts" mineurs (par exemple, des applications de fond peuvent "modifier" le résultat). P>
Personnellement, j'irais d'abord avec Visualvm ou Jrockit Mission Control. P>
Le problème avec "profileur 101" est qu'il incarne de nombreuses idées dont la justification est plus une question de popularité que la pensée sonore. P>
La plus grande idée de ce type est que la meilleure façon de trouver des problèmes de performance consiste à mesurer les performances. P>
C'est une pensée descendante, et c'est comme essayer de trouver des déchets au gouvernement en examinant le budget de chaque département. Une alternative est une approche ascendante, telle que cueillir plusieurs unités aléatoires d'argent ou de temps et (la plus importante) déterminant complètement S'il y a des déchets, cela le trouvera rapidement. La raison est simple, si un pour cent (selon 40%) est en cours de gaspillage, ce pourcentage d'échantillons (en moyenne) vous montrera précisément comment il est gaspillé. P>
C'est la langue Méthode agnostique que j'utilise. p>
a ajouté: vous pouvez penser qu'une grande fraction comme 40% est irréaliste, car vous ne pouvez pas l'imaginer, Mais c'est tout à fait possible . P>
Pouvez-vous s'il vous plaît répondez à ceci: Stackoverflow .com / questions / 44070523 / ...
Votre application est-elle déjà tirée par le printemps? Essayez-vous de profiler des méthodes qui font partie d'un haricot géré de printemps?
Oui, la majeure partie de l'application est entraînée au printemps et oui la méthode que je veux profiler faites partie du haricot de printemps
@Antoineclaval Pouvez-vous répondre à cela: Stackoverflow.com/Questtions/44070523/...