J'aime essayer d'optimiser mon code, et je voudrais mesurer le temps pris par une fonction.VB NET Comment exécuter du code au début et à la fin d'une fonction
J'ai une classe nommée Chrono. Il me suffit donc d'ajouter chrono.start au début de la fonction, et chrono.stop à la fin. Ma classe ajoute aussi les temps qu'il mesure dans une liste, pour ensuite avoir le temps moyen, le temps total ...
Cela fonctionne. Le seul problème est quand il y a exit sub ou return au milieu de la fonction. Pas vraiment un problème, je viens d'ajouter un Try au début de la fonction, et mettre mon chrono.stop dans la partie finale. Je ne suis pas sûr que ce soit vraiment efficace, mais ça fonctionne.
Voici donc ma question: je voudrais avoir une fonction prenant le nom de la fonction en paramètre, qui lancera et arrêtera automatiquement ma classe lorsque cette fonction est appelée. J'ai entendu parler de Reflection, mais je n'ai aucune idée de comment l'utiliser. Et c'est vraiment difficile de chercher cette question sur internet (parce que les mots sont trop communs: "faire quelque chose à la fin d'une fonction")
En résumé, mon code fonctionne, pas de problème. C'est juste contraignant d'ajouter du code à une fonction pour une courte période de temps (et parfois oublié de l'enlever).
Thx (je suis français et espère que je suis compréhensible)
La méthode correcte consiste à utiliser un profileur, sans rouler votre propre minuteur. –
Je rembember il y a une façon AOP de le faire; De toute façon, si vous voulez juste mesurer les performances, vous pouvez essayer les outils de diagnostic VS. EDIT: Bien que l'AOP sera opt-in. –
Je peux utiliser le profiler de Visual Studio. Cependant, le chargement de l'application est plus lent, il est donc long d'avoir les résultats car il mesure tout. Mais peut-être y a-t-il un moyen de lui dire ce qu'il faut mesurer ... Je vais m'y pencher. N'y at-il pas un moyen de le faire comme je l'ai demandé? –