Comment utiliser les compteurs PerfMon pour enregistrer le temps moyen d'exécution d'une méthode en C#? Jusqu'ici, j'ai seulement trouvé un exemple de code pour incrémenter ou décrémenter un compteur PerfMon.Création d'un compteur PerfMon pour enregistrer une moyenne par appel (C#)
18
A
Répondre
35
Voici un exemple de code que j'ai déjà écrit pour faire exactement cela.
D'abord, vous devez spécifier et installer les compteurs de performance en question. Vous pouvez le faire en utilisant un installateur:
public class CreditPerformanceMonitorInstaller : Installer
{
private PerformanceCounterInstaller counterInstaller_;
public CreditPerformanceMonitorInstaller()
{
this.counterInstaller_ = new PerformanceCounterInstaller();
this.counterInstaller_.CategoryName = CreditPerformanceCounter.CategoryName;
this.counterInstaller_.CategoryType = PerformanceCounterCategoryType.SingleInstance;
CounterCreationData transferAverageData = new CounterCreationData();
transferAverageData.CounterName = CreditPerformanceCounter.AverageTransferTimeCounterName;
transferAverageData.CounterHelp = "Reports the average execution time of transfer operations";
transferAverageData.CounterType = PerformanceCounterType.AverageTimer32;
this.counterInstaller_.Counters.Add(transferAverageData);
CounterCreationData transferAverageBaseData = new CounterCreationData();
transferAverageBaseData.CounterName = CreditPerformanceCounter.AverageTransferTimeBaseCounterName;
transferAverageBaseData.CounterHelp = "Base for average transfer time counter";
transferAverageBaseData.CounterType = PerformanceCounterType.AverageBase;
this.counterInstaller_.Counters.Add(transferAverageBaseData);
this.Installers.Add(this.counterInstaller_);
}
public Installer PerformanceCounterInstaller
{
get { return this.counterInstaller_; }
}
}
Pour écrire au compteur de performance, vous pouvez le faire comme ceci:
public void RecordTransfer(long elapsedTicks)
{
using (PerformanceCounter averageTransferTimeCounter = new PerformanceCounter(),
averageTransferTimeBaseCounter = new PerformanceCounter())
{
averageTransferTimeCounter.CategoryName = CreditPerformanceCounter.CategoryName;
averageTransferTimeCounter.CounterName = CreditPerformanceCounter.AverageTransferTimeCounterName;
averageTransferTimeCounter.ReadOnly = false;
averageTransferTimeBaseCounter.CategoryName = CreditPerformanceCounter.CategoryName;
averageTransferTimeBaseCounter.CounterName = CreditPerformanceCounter.AverageTransferTimeBaseCounterName;
averageTransferTimeBaseCounter.ReadOnly = false;
averageTransferTimeCounter.IncrementBy(elapsedTicks);
averageTransferTimeBaseCounter.Increment();
}
}
4
Regardez les différents PerformanceCounterTypes. Il existe plusieurs types de calcul du temps moyen ou du comptage. Vous trouverez également quelques exemples.
Espérons que cela aide.
Questions connexes
- 1. Trouver l'identifiant du compteur perfmon via winreg
- 2. Perfmon-like pour Linux?
- 3. filtrage SQL par moyenne
- 4. Création de compteur personnalisée via l'application Web
- 5. SQL Select compteur par groupe
- 6. besoin d'implémenter Compteur C#
- 7. Perfmon ne fonctionnera plus
- 8. Compteur de performance pour "La plus grande région libre"?
- 9. UNIX Appel système pour enregistrer un processus d'arrière-plan
- 10. en boucle et moyenne en C++
- 11. Outils d'analyse de fichiers Perfmon
- 12. Comment faire pour trier les tableaux par produit [compteur] .getProductTitle()?
- 13. Pourquoi est-ce que perfmon ne peut pas voir les instances de mon compteur de performance personnalisé?
- 14. comment écrire C# code pour la création d'un appel conférence pour softphone en utilisant TAPI3.0
- 15. Création de XML en C# pour jQuery
- 16. Moyenne pondérée
- 17. xsl: pour chaque compteur de boucle
- 18. Création d'une configuration (MSI) pour enregistrer (regasm) un assembly
- 19. c bibliothèque pour calculer moyenne, médiane, mode, d'autres statistiques?
- 20. Création C# invite pour Blackberry
- 21. Moyenne rapide sans division
- 22. amplitude moyenne d'un .wav en C#
- 23. Prendre une moyenne conditionnelle dans Stata
- 24. Appel Py_Finalize() de C
- 25. Existe-t-il un compteur de performance SQL Server pour un temps d'exécution moyen?
- 26. C# Création d'une configuration pour plusieurs langues
- 27. Appel fonction C++ de C#
- 28. appel service WCF par VBScript
- 29. SQLite - comment obtenir une valeur moyenne?
- 30. Création de tables dynamiques dans Word par C# .NET