.Net Core 5 查看当前CPU 占用比例

news/2024/5/19 21:48:49 标签: .netcore, microsoft

转载:https://blog.csdn.net/i2blue/article/details/119874834
在这里插入图片描述

  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;
        }
    }

http://www.niftyadmin.cn/n/1170457.html

相关文章

Redis 基础、高级特性与性能调优

本文将从Redis的基本特性入手&#xff0c;通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力&#xff0c;并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。本文适合使用Redis的普通开发人员&#xff0c;以及对Redis进…

【sqli-labs】Less5~Less6

双注入原理&#xff1a; 来源&#xff1a; http://www.myhack58.com/Article/html/3/7/2016/73471.htm (非常详细的说明了原理&#xff0c;good) http://www.2cto.com/article/201303/192718.html(通俗易懂的讲解了使用方法) 基本句式&#xff1a; select count(*), concat((se…

Spring AbstractApplicationContext#refresh()源码解析(1)

今天我们要聊的是spring最核心的一块&#xff1a;应用上下文的创建过程&#xff0c;了解它对于学习spring来说有比较大的帮助&#xff0c;而refresh方法又是应用上下文的创建中最核心的一块 我们来看看&#xff1a; 源码一览 public void refresh() throws BeansException, Il…

模块—— 序列化模块、random模块、os模块 、 sys模块、hashlib模块、collections模块...

今天我们来说说Python中的模块&#xff1a; 第三方模块 可以下载/安装/使用 第一步&#xff1a;将pip.exe 所在的目录添加到环境变量中第二步&#xff1a;输入pip第三步&#xff1a;pip install 要安装的模块名称 #pip install xlrd 报错原因&#xff1a; 要求更新模块&…

C#获取特定进程CPU和内存使用率

转载&#xff1a;https://www.cnblogs.com/maowang1991/p/3285983.html 首先是获取特定进程对象&#xff0c;可以使用Process.GetProcesses()方法来获取系统中运行的所有进程&#xff0c;或者使用Process.GetCurrentProcess()方法来获取当前程序所对应的进程对象。当有了进程对…

FCC 2018 前端技术大会总结

上周末在成都举办了 2018 Web 前端大会&#xff0c;参加这次活动也是收获满满&#xff0c;在我的分享日程中也是有这一项&#xff0c;所以&#xff0c;今天就简单的介绍回顾一下本次大会的一些事宜。 流程 高效H5动画开发方式给 Node.js 插上 C 的翅膀开源项目维护敏捷中国史高…

记一次针对UIViewController的AOP尝试

记一次针对UIViewController的AOP尝试 前言 最近在看casa大牛博客的架构系列其中的一章 iOS应用架构谈 view层的组织和调用方案。在“是否有必要让业务方统一派生ViewController”这一观点上&#xff0c;casa举了在阿里工作时的例子&#xff0c;他发现当在做Demo时搭建环境是一…

Linux环境变量配置详解

这篇文章主要介绍了Linux环境变量配置全攻略&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值。 在自定义安装软件的时候&#xff0c;经常需要配置环境变量&#xff0c;下面列举出各种对环境变量的配置方法。 下面所有例子的…