Estoy trabajando en un programa en segundo plano que se ejecutará durante mucho tiempo, y tengo un programa de registro externo (SmartInspect) que deseo alimentar periódicamente con algunos valores, para supervisarlo en tiempo real cuando se depura.¿Puede un programa C# medir su propio uso de CPU de alguna manera?
Sé que puedo simplemente iniciar varios programas, como el Administrador de tareas o IARSN TaskInfo, pero me gustaría tener todo en mi propio programa para esto, ya que también quiero agregar algunas reglas simples como si el el programa usa más del X% de CPU, marque esto en el registro.
que tienen un subproceso de fondo que se alimenta periódicamente algunas estadísticas a SmartInspect, al igual que el consumo de memoria, conjunto de trabajo, etc.
¿Es posible que este hilo para obtener una medida bastante exacta de la cantidad de recursos de CPU de la computadora ¿consume? El programa principal es una aplicación de subproceso único (aparte del subproceso de vigilancia que registra las estadísticas), por lo que si una técnica se limita a , cuánto utilizará un solo subproceso, entonces eso sería bueno también.
Encontré algunas entradas relacionadas con algo llamado rusage para Linux y C. ¿Hay algo similar que pueda usar para esto?
Editar: Ok, me trataron de la manera contador de rendimiento, pero añade un buen montón de GC-datos cada vez que se llama, por lo que la gráfica de uso de la memoria y la recolección de basura se disparó. Supongo que dejaré esta parte por ahora.
Esto funcionó mucho mejor y no agregó tanta presión en el GC, solo un ligero aumento. ¡Gracias! –
@axk El artículo no parece estar disponible, ¿puede completar su respuesta que indica simplemente cómo recuperar SOLAMENTE la parte del procesador actual? – J4N