国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 如何在 .NET Core 中獲取 CPU 使用率

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

2022-01-07 22:13一線碼農聊技術jackwild ASP.NET教程

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

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

這篇文章我們分享一種如何在 .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.     } 

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

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

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

原文鏈接:https://mp.weixin.qq.com/s/MdL5HBcHgbo_3DMshc5Gfg

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久99国产精一区二区三区 | 日韩免费网站 | 色九九| 国产精品美女久久久久久免费 | 欧美精品一区二区三区在线播放 | 欧美黑人一级爽快片淫片高清 | 99国产精品99久久久久久 | 欧美成人a| 中文字幕一区二区三区四区 | 久久久久久国产 | 亚洲精品一区二区三区在线 | 欧美黑人狂躁日本寡妇 | 久久精品亚洲 | 中国大陆高清aⅴ毛片 | 精品亚洲一区二区 | 一区二区三区影视 | 精品美女久久久 | 国产一区二区三区在线免费观看 | av免费网站在线观看 | 自拍在线 | 国产欧美一区二区视频 | 久久久亚洲综合 | 伊人激情 | 成人免费网站 | 91黄视频 | 亚洲欧洲精品一区二区 | 少妇精品久久久久久久久久 | 午夜久久久久 | 黄色片免费在线观看 | 久久综合一区 | 中文字幕一区二区三区日韩精品 | 在线一区二区三区做爰视频网站 | 久久精品亚洲精品国产欧美kt∨ | 色8888www视频在线观看 | 日韩美女国产精品 | 激情一区二区 | 日韩成人在线网 | 国产伦精品一区二区三区 | 亚洲精品免费av | 欧美伦理一区二区三区 | 欧洲另类二三四区 |