iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >在NET Core 中获取 CPU 使用率
  • 893
分享到

在NET Core 中获取 CPU 使用率

2024-04-02 19:04:59 893人浏览 八月长安
摘要

以下文章来源于微信公众号DotNetCore实战  在 .net Framework 中,很多人会用 PerfORManceCounter 类做这件事情, 如下代码:  

以下文章来源于微信公众号DotNetCore实战 

.net Framework 中,很多人会用 PerfORManceCounter 类做这件事情,

如下代码:

    public class Program
    {
        public static void Main(string[] args)
        {
            while (true)
            {
                var cpuUsage = GetcpuUsageForProcess();

                Console.WriteLine(cpuUsage);
            }
        }

        private static int GetCpuUsageForProcess()
        {
            var currentProcessName = Process.GetCurrentProcess().ProcessName;
            var cpuCounter = new PerformanceCounter("Process", "% Processor Time", currentProcessName);
            cpuCounter.NextValue();
            return (int)cpuCounter.NextValue();
        }
    }

PerformanceCounter.netcore 中是没有的,所以只能采用其他方式了,其实在 System.Diagnostics.Process 类中有一个 TotalProcessorTime 属性,它可以准实时的统计当前进程所消耗的CPU处理器时间,

如下代码:
   

class Program
    {
        public static async Task Main(string[] args)
        {
            var task = Task.Run(() => ConsumeCPU(50));

            while (true)
            {
                await Task.Delay(2000);
                var cpuUsage = await GetCpuUsageForProcess();

                Console.WriteLine(cpuUsage);
            }
        }

        public static void ConsumeCPU(int percentage)
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();
            while (true)
            {
                if (watch.ElapsedMilliseconds > percentage)
                {
                    Thread.Sleep(100 - percentage);
                    watch.Reset();
                    watch.Start();
                }
            }
        }

        private static async Task<double> GetCpuUsageForProcess()
        {
            var startTime = DateTime.UtcNow;
            var startCpuUsage = Process.GetCurrentProcess().TotalProcessorTime;

            await Task.Delay(500);

            var endTime = DateTime.UtcNow;
            var endCpuUsage = Process.GetCurrentProcess().TotalProcessorTime;

            var cpuUsedMs = (endCpuUsage - startCpuUsage).TotalMilliseconds;
            var totalMsPassed = (endTime - startTime).TotalMilliseconds;

            var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed);

            return cpuUsageTotal * 100;
        }
    }

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

到此这篇关于在Net Core 中获取 CPU 使用率的文章就介绍到这了,更多相关NET Core 中获取 CPU 使用率内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

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

--结束END--

本文标题: 在NET Core 中获取 CPU 使用率

本文链接: https://www.lsjlt.com/news/161858.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在NET Core 中获取 CPU 使用率
    以下文章来源于微信公众号DotNetCore实战  在 .NET Framework 中,很多人会用 PerformanceCounter 类做这件事情, 如下代码:   ...
    99+
    2024-04-02
  • 如何在NET Core中获取CPU使用率
    这篇文章主要介绍“如何在NET Core中获取CPU使用率”,在日常操作中,相信很多人在如何在NET Core中获取CPU使用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在NET&...
    99+
    2023-06-26
  • VBScript中如何获取CPU使用率
    本篇文章给大家分享的是有关VBScript中如何获取CPU使用率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。VBScript通过WMI获取CPU使用率的代码On E...
    99+
    2023-06-08
  • VBS中怎么利用WMI获取CPU使用率
    本篇文章为大家展示了VBS中怎么利用WMI获取CPU使用率,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:On Error Resume Next strComputer = "....
    99+
    2023-06-08
  • 使用python获取cpu每秒的使用率
    目录获取cpu每秒的使用率要求在cpu.txt文件中python充分利用cpu多线程无法增加cpu使用率的原因如何充分使用多核跑程序1. multiprocessing2. C 语言...
    99+
    2024-04-02
  • Linux中怎么获取cpu利用率
    今天就跟大家聊聊有关Linux中怎么获取cpu利用率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、从/proc文件系统获取相关的性能参数cpu使用率: /proc/stat内存使...
    99+
    2023-06-16
  • 怎么使用python获取cpu每秒的使用率
    今天小编给大家分享一下怎么使用python获取cpu每秒的使用率的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。获取cpu每秒...
    99+
    2023-06-30
  • php获取cpu使用率、硬盘使用、内存使用
    cpu 使用率 代码实现: 结果显示: array(1) { [0]=> string(4) "35.0"}array(1) { ["cpu"]=> float(65)} ...
    99+
    2023-09-04
    服务器 linux 运维
  • .NET Core使用CZGL.SystemInfo库获取主机运行资源
    简介 CZGL.SystemInfo 是一个支持 Windows 和 Linux 的资源信息获取库,用于获取系统环境、机器资源信息、系统资源使用情况。 Nuget 搜索 C...
    99+
    2024-04-02
  • .NET Core如何使用CZGL.SystemInfo库获取主机运行资源
    今天就跟大家聊聊有关.NET Core如何使用CZGL.SystemInfo库获取主机运行资源,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。简介CZGL.SystemInf...
    99+
    2023-06-28
  • 在.NET Core中使用CSRedis的详细过程
    目录CSRedis开始之前字符串(string)使用CSRedis进行简单操作非正常情况列表(list)集合(set)散列(hashmap)有序集合事务Key的过期引用CSRedis...
    99+
    2024-04-02
  • .NET Core中怎么使用Autofac
    今天小编给大家分享一下.NET Core中怎么使用Autofac的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Au...
    99+
    2023-06-29
  • 我的 net/http post 方法给出 100% cpu 使用率
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《我的 net/http post 方法给出 100% cpu 使用率》,在实现功能的过程中也...
    99+
    2024-04-05
  • .NET Core(.NET6)中gRPC使用实践
    目录一、简介二、创建gRPC服务端1.创建gRPC项目2.编写自己的服务三、创建gRPC客户端1.创建客户端项目2.grPC服务https的调用3.gRPC内网http调用4.IOC...
    99+
    2024-04-02
  • 怎么使用shell获取进程名的内存及CPU利用率
    这篇文章主要介绍“怎么使用shell获取进程名的内存及CPU利用率”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用shell获取进程名的内存及CPU利用率”文章能帮助大家解决问题。原理:1)使...
    99+
    2023-06-30
  • .NET Core中使用gRPC的方法
    目录1.什么是gRPC1.基本介绍2.proto文件3.上手实践2.gRPC流1.服务端流、客户端流、双向流2.NetCore Web项目作为客户端3.gRPC AOP拦截1.什么是...
    99+
    2024-04-02
  • 使用Python脚本获取CPU温度
    不同的linux发行版可能获取CPU温度文件的目录不所不同,可自行百度。 # fedora filepath :'/sys/class/hwmon/hwmon0/device/hwmon/hwmon0/temp2_input' #...
    99+
    2023-01-31
    脚本 温度 Python
  • 在ASP.NET Core中应用HttpClient获取数据和内容
    目录概述关于HttpClient在ASP.NET Core中使用HttpClient发送GET请求支持不同的响应格式HttpClient中的优先级使用HttpRequestMessa...
    99+
    2024-04-02
  • .NET Core使用C#扫描并读取图片中的文字
    本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例。下面是具体步骤,供参考。 程序测试环境: Visual Studio版本要求不...
    99+
    2024-04-02
  • 如何在Linux中监控CPU温度、频率、功率和使用率
    这篇文章主要为大家展示了“如何在Linux中监控CPU温度、频率、功率和使用率”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何在Linux中监控CPU温度、频率、功率和使用率”这篇文章吧。s-...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作