Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/Fleny113/Hexus. A modern, cross-platform process manager
dotnet dotnet-core dotnetcore process-manager
Something went wrong. Try again.
754 B · 23 lines
123456789101112131415161718192021222324using Hexus.Daemon.Services;using System.Diagnostics;
namespace Hexus.Daemon.Extensions;
internal static class ProcessExtensions{ public static double GetProcessCpuUsage(this Process process, ProcessStatisticsService.CpuStatistics cpuStatistics) { var currentTime = DateTimeOffset.UtcNow; var deltaTime = currentTime - cpuStatistics.LastTime;
var totalProcessTime = process.TotalProcessorTime; var deltaProcessTime = totalProcessTime - cpuStatistics.LastTotalProcessorTime;
var cpuUsage = deltaProcessTime / Environment.ProcessorCount / deltaTime;
cpuStatistics.LastTotalProcessorTime = totalProcessTime; cpuStatistics.LastTime = currentTime;
return cpuUsage * 100; }}