Question

Je souhaite suivre les performances au sein d'une application mobile c #, afin de connaître le temps nécessaire à certaines méthodes de longue durée. L'objectif est de connaître la performance au niveau des méthodes. Ce traçage sera décidé lors de l'exécution.

La première idée qui est venue est de maintenir une variable globale "doWeHaveToTrace", afin de la vérifier chaque fois qu'une méthode potentiellement traçable est appelée et de la tracer si cette variable est vraie. Et dans ce cas, j’utiliserais probablement un enregistreur ou un TraceListener pour écrire les informations de traçage dans un fichier.

Mais je pense que ce mécanisme est assez lourd, car une variable doit être vérifiée dans chaque méthode et les appels de l'enregistreur doivent être codés.

J'ai aussi pensé à la programmation des aspects (insérer du code de traçage dans les méthodes before () et after ()), mais je ne pense pas que la programmation des aspects puisse être autorisée dans ce projet.

Alors je me demandais, y at-il d’autres bons mécanismes qui pourraient fournir un tel suivi des performances? Est-il possible de tracer toute une méthode? Et pour décider d’arrêter ou de reprendre le traçage au moment de l’exécution?

J'espère avoir été clair, Merci

Était-ce utile?

La solution

Vous ne savez pas exactement ce que vous essayez de suivre, mais si vous essayez de suivre le temps entre des méthodes longues, vous feriez peut-être mieux de vous connecter à API de profilage .NET . Voici un didacticiel d'utilisation.

Un profileur commercial serait une autre option plus simple.

Autres conseils

Découvrez comment compiler de manière conditionnelle avec la trace et le débogage dans .NET (en supposant que vous utilisez .NET). Les classes Trace et Déboguer vous fourniront tous les résultats d'exécution dont vous avez besoin à des fins de développement. Ensuite, vous pouvez supprimer tout votre code de débogage / trace (et la surcharge d’exécution associée) dans votre application déployée en supprimant simplement les directives du compilateur TRACE.

OU

Vous pouvez utiliser une application de profilage externe pour effectuer votre profilage des performances et de la mémoire. Voir ici (à partir de StackOverflow.com): Quels sont certains bons profileurs .NET?

Profitez,

Robert C. Cartaino

Pouvez-vous simplement l’exécuter sur un ordinateur de bureau, sous un IDE, et faire les choses habituelles, comme le chronométrer et / ou échantillonnage?

Vous allez sûrement trouver des choses qui prennent du temps et qui pourraient être accélérées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top