www universidad respuestas que para org online nacional méxico mexico learn gratis cursos curso coursera contadores contabilidad basico autónoma c# perfmon

c# - universidad - https www coursera org learn contabilidad



Creación de un contador PerfMon para registrar un promedio por llamada(C#) (2)

Aquí hay un código de muestra que una vez escribí para hacer exactamente eso.

Primero, debe especificar e instalar los contadores de rendimiento en cuestión. Puedes hacer esto usando un instalador:

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_; } } }

Para escribir en el contador de rendimiento, puedes hacerlo así:

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(); } }

¿Cómo puedo usar los contadores PerfMon para registrar el tiempo de ejecución promedio de un método en C #?

Hasta el momento, solo he encontrado un código de muestra para incrementar o disminuir un contador PerfMon.


Echa un vistazo a los diferentes PerformanceCounterTypes . Hay varios tipos para calcular el tiempo promedio o el conteo. También encontrarás algunos ejemplos.

Espero que esto ayude.