成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 .NET Core 中獲取 CPU 使用率

商務辦公
這篇文章我們分享一種如何在 .NETCore 中獲取 CPU使用率的方法, 它所報告的這個值和 任務管理器 中報告的 CPU 使用值 差不多是一致的。

[[434460]]

這篇文章我們分享一種如何在 .NETCore 中獲取 CPU使用率的方法, 它所報告的這個值和 任務管理器 中報告的 CPU 使用值 差不多是一致的。

在 .NET Framework 中,很多人會用 PerformanceCounter 類做這件事情,參考如下代碼:

  1. public class Program 
  2.   { 
  3.       public static void Main(string[] args) 
  4.       { 
  5.           while (true
  6.           { 
  7.               var cpuUsage = GetCpuUsageForProcess(); 
  8.  
  9.               Console.WriteLine(cpuUsage); 
  10.           } 
  11.       } 
  12.  
  13.       private static int GetCpuUsageForProcess() 
  14.       { 
  15.           var currentProcessName = Process.GetCurrentProcess().ProcessName; 
  16.           var cpuCounter = new PerformanceCounter("Process""% Processor Time", currentProcessName); 
  17.           cpuCounter.NextValue(); 
  18.           return (int)cpuCounter.NextValue(); 
  19.       } 
  20.   } 

但 PerformanceCounter 在 .NETCore 中是沒有的,所以只能采用其他方式了,其實在 System.Diagnostics.Process 類中有一個 TotalProcessorTime 屬性,它可以準實時的統計當前進程所消耗的CPU處理器時間,參考如下代碼:

  1. class Program 
  2.     public static async Task Main(string[] args) 
  3.     { 
  4.         var task = Task.Run(() => ConsumeCPU(50)); 
  5.  
  6.         while (true
  7.         { 
  8.             await Task.Delay(2000); 
  9.             var cpuUsage = await GetCpuUsageForProcess(); 
  10.  
  11.             Console.WriteLine(cpuUsage); 
  12.         } 
  13.     } 
  14.  
  15.     public static void ConsumeCPU(int percentage) 
  16.     { 
  17.         Stopwatch watch = new Stopwatch(); 
  18.         watch.Start(); 
  19.         while (true
  20.         { 
  21.             if (watch.ElapsedMilliseconds > percentage) 
  22.             { 
  23.                 Thread.Sleep(100 - percentage); 
  24.                 watch.Reset(); 
  25.                 watch.Start(); 
  26.             } 
  27.         } 
  28.     } 
  29.  
  30.     private static async Task<double> GetCpuUsageForProcess() 
  31.     { 
  32.         var startTime = DateTime.UtcNow; 
  33.         var startCpuUsage = Process.GetCurrentProcess().TotalProcessorTime; 
  34.  
  35.         await Task.Delay(500); 
  36.  
  37.         var endTime = DateTime.UtcNow; 
  38.         var endCpuUsage = Process.GetCurrentProcess().TotalProcessorTime; 
  39.  
  40.         var cpuUsedMs = (endCpuUsage - startCpuUsage).TotalMilliseconds; 
  41.         var totalMsPassed = (endTime - startTime).TotalMilliseconds; 
  42.  
  43.         var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed); 
  44.  
  45.         return cpuUsageTotal * 100; 
  46.     } 

可以看到程序每2s輸出一次,觀察到 output 和 任務管理器 中的CPU利用率基本是一致的。

 

譯文鏈接:https://medium.com/@jackwild/getting-cpu-usage-in-net-core-7ef825831b8b

 

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2010-01-18 10:13:08

VB.NET獲取CPU

2021-05-31 15:53:57

CPU Top命令

2022-07-23 21:31:24

KubernetesLinux開源

2021-08-10 11:45:57

topCPULinux

2009-11-16 17:03:20

Oracle優化CPU

2020-07-08 07:00:00

LinuxCPU應用程序

2024-04-11 13:27:19

Linuxtop命令

2019-01-15 15:04:54

CPU電腦使用率

2014-12-01 13:44:03

cgroupscpulimitlinux

2022-04-06 06:35:58

進程命令CPU

2023-03-06 08:41:32

CPU使用率排查

2024-05-31 12:54:37

.NET CoreLinux語言

2021-01-31 22:56:50

FromServiceASP

2021-03-10 09:40:43

LamarASP容器

2021-02-03 13:35:25

ASPweb程序

2021-02-28 20:56:37

NCache緩存框架

2021-01-28 22:39:35

LoggerMessa開源框架

2021-01-07 07:39:07

工具接口 Swagger

2021-03-03 22:37:16

MediatR中介者模式

2021-03-17 09:45:31

LazyCacheWindows
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线中文字幕 | 精品欧美一区二区在线观看视频 | 精品欧美一区二区在线观看视频 | 成年人在线观看视频 | 久久精品亚洲国产奇米99 | 日韩中文字幕一区 | 中文字幕免费视频 | 日本综合在线观看 | 天天综合网永久 | 2018天天干天天操 | 国产精品久久久久久久久图文区 | 日韩欧美三级电影 | 99精品久久 | 国产视频91在线 | 欧美精品久久久久 | 在线电影日韩 | 日韩精品一区二区三区视频播放 | 国产视频三区 | 欧美一区二区三区免费在线观看 | 国产视频一区在线观看 | 国产精品99久久久久久宅男 | 成在线人视频免费视频 | 亚洲欧美日本在线 | 91久久国产综合久久 | 免费观看成人av | 无人区国产成人久久三区 | 欧美精品一级 | 久久黄色| www精品美女久久久tv | 福利网址 | 国产麻豆乱码精品一区二区三区 | 国产精品a久久久久 | 国产精品欧美一区二区三区 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 日韩成人精品一区 | 国产精品精品视频一区二区三区 | 国产一区二区三区在线 | 91精品国产91久久久久久最新 | 国产精品精品久久久 | 男女深夜网站 | 1204国产成人精品视频 |