.net 软件 CPU 占用率高问题处理

news/2024/4/20 12:32:15/

.net 软件 CPU 占用率高问题处理

一般这种都是因为 代码问题 导致的,比如最经典的就是死循环,而且循环体内,没有做任何的 CPU 抢占丢弃处理,往往这种代码极易引起 CPU 占用率狂飙。

如何发现?

.net 可以通过 Visual studio 的诊断工具来查看CPU、内存使用信息,

1、开启调试

2、打开诊断工具

3、开始记录

4、等待 30 秒以上

5、生成汇报

在这里插入图片描述
453.png)]

6、查看汇报信息

通过查看报告可以发现,纳尼?小伙伴的某段代码竟然是一个空死循环,估计是太忙了,写了之后忘了吧,大家都没太留意 CPU 占用率,所以一直把这个问题保留到现在。
在这里插入图片描述

如何处理?

其实这个 CPU 占用率过高的问题,是软件经理提出的,当时提出这个问题之后,我在想可能是因为开了很多while(true)的原因吧,因为只有不恰当的死循环才会导致频繁申请 CPU 调用。

根据我的想法,我先是在一些 死循环体内用 AutoResetEvent 来代替 Thread.Sleep(100), 改了好几个,但是毫无效果,CPU 占用率与之前的几乎一致。说明这些优化起到的作用是有限的。况且 Thread.Sleep 是将 CPU 占用权丢弃,更不会引起这个 CPU 占用率过高的问题。

幸好,VS 提供了强大的诊断工具,利用工具可以快速发现问题的根源, 要不然,一个个死循环找下去,真的很费人(除非循环很少)。

1、最粗暴:删除

2、将 Thread.sleep(1) 加入到循环体,从而主动丢弃 CPU 使用权

总结

1、磨刀不误砍柴工,各种工具的都可以多接触,提高效率嘛

2、Sleep(1) 的妙用,此外还有 Sleep(0),大家可以多了解了解


http://www.ppmy.cn/news/373208.html

相关文章

CPU使用率过高应该如何处理

CPU使用率如何计算的 CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示,而其中有一个重要的点是单位时间,那么在CPU中时间是怎么计算的呢? Linux是一个多任务操作系统,将每个CPU时间划分为很短的时间片&a…

遇见Linux系统CPU使用率过高怎么办?

导读对于新手来说,可能各种进程管理工具用的还不算熟悉,那么遇见Linux系统CPU系统使用率过高怎么办?那么就学习一下吧。 查看CPU使用 在 Linux 系统下,使用 top 命令查看 CPU 使用情况。 %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 …

Tomcat进程占用CPU过高怎么办?

“Java 进程 CPU 使用率高”的解决思路是什么? 通常我们所说的 CPU 使用率过高,这里面其实隐含着一个用来比较高与低的基准值,比如 JVM 在峰值负载下的平均 CPU 利用率为 40%,如果 CPU 使用率飙到 80% 就可以被认为是…

计算机占cpu程序,电脑cpu占用过高怎么办 电脑进程CPU占用100%解决办法

很多朋友在使用电脑都出现过电脑CPU使用率高导致电脑非常卡,运行的一些程序卡主不动了。无响应的情况。那么电脑CPU占用100%使用率怎么解决呢?导致CPU使用率高的问题无非就在于两点:1.系统或软件问题;2.硬件问题 解决CPU使用率过高…

MySQL数据库CPU使用率过高,怎么办

背景 在使用MySQL过程,想必都有遇到过CPU突然过高,或者达到100%的情况。 数据库执行查询或数据修改操作时,系统需要执行大量的逻辑读操作,其中逻辑IO包含执行查询所需访问表的数据行数。所以系统需要消耗大量的CPU资源以维护从存…

高频面试题:服务器CPU占用过高怎么办?搞定只需简单7步

一. 前言 在Java开发岗位的面试中,时不时会出现一些运维类的题目,其实这也反映了后端面试的一种趋势。现在企业对后端开发的要求越来越全面,不仅要求我们会写代码,还要我们能够进行部署和运维。 今天九哥就结合一个真实的项目案…

如何排查CPU占用过高以及常见的几种情况

在最近上线过程中遇到cpu占用率过高问题 由于问题已解决,此时仅重现操作方法 1.先用top命令,找到cpu占用最高的进程 PID 如上图 2.再用ps -mp pid -o THREAD,tid,time 查询进程中,那个线程的cpu占用率高 记住TID 3.jstack 29099 >> xxx.log 打印出该进程下线程日志…

网络层:静态路由配置及其可能产生的路由环路问题

网络层:静态路由配置及其可能产生的路由环路问题 笔记来源: 湖科大教书匠:静态路由配置及其可能产生的路由环路问题 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 静态路由配置是指用户或网络管理员使用路由器的…

AI 绘画(0):导论

文章目录 导论感谢人员Ai绘画前期准备软件环境硬件条件 Ai绘画介绍Ai绘画简单流程介绍Ai绘画软件介绍参数输入介绍 Ai绘画公约 导论 Ai绘画是最近比较热门的绘画方式,以干掉原画师为口号,引起了激烈的讨论。Ai绘画能否取代人工我们先不谈,但…

猿代码 小米 海尔智家都在盯一个方向——智能未来

一直在关注这几家企业动向: 小米,在电商平台上架品类越来越多,而且大部分已升级成智能产品。 海尔智家,线下已经有不少体验店,并且单店面积都在1000平米以上且店内仅1_2位工作人员。 猿代码,面向全国百万软件开发爱…

三星高管:家电业务将实行并购策略 海尔并购案影响小

三星家电业务对并购持开放态度 北京时间1月25日消息,三星电子高管今天在接受媒体采访时表示,为了保持家电业务的增长,公司会考虑各种选择,包括收购与合并。 本周一,三星召开媒体见面会。三星电子家电业务主管Suh Byung…

体验竞争:从海尔美食葩看产品创新

据媒体报道消息,海尔日前携手知名主持人安琥、美食专栏作家沈宏非、当红花旦兼另类厨娘范湉湉等知名人士,共同发起“智爱星人奇葩美食总动员”活动。据了解,该活动以用智能奇葩的家电产品共创奇葩美食体验为宗旨,力图和个性化的年…

日媒:海尔收购GE家电后将跃居全球第5

据《日本经济新闻》1月18日报道,中国家电企业海尔集团1月15日宣布将收购美国通用电气(GE)的家电业务。收购额为54亿美元,将接管GE家电部门的人员和在美国的业务基础。同时还将获得知识产权和“GE”的品牌,将其作为正式开拓欧美等发达国家的立…

智能家居齐发力:鸿蒙专攻系统、海尔智家专注入户、小米侧重连接

文|智能相对论(aixdlun) 作者|佘凯文 6月2日,备受关注的华为鸿蒙操作系统及全场景新品发布会如期而至,除了正式发布鸿蒙2.0操作系统外,还有多款终端设备亮相。 余承东在发布会上指出“现如今链接、控制、体验都存在…

持续投入彰显信心,海尔智家又一互联工厂投产

受客观因素影响,大多数企业采取了投入相对保守的防御策略来应对挑战。海尔智家却选择主动出击,继国内外不断建厂后,又于9月25日在重庆投产了洗碗机互联工厂,足见其对未来充满信心。半年报发布后,超预期已经成为海尔智家…

Java企业级开发学习笔记(4.4)Spring Boot加载自定义配置文件

一、使用PropertySource加载自定义配置文件 1.1 创建Spring Boot项目 创建Spring Boot项目 单击【创建】按钮 1.2 创建自定义配置文件 在resources里创建myconfig.properties文件 设置文件编码 设置学生的四个属性值 1.3 创建自定义配置类 在cn.kox.boot包里创建confi…

Redis 配置

Redis 配置 配置文档 参考文档: https://www.cnblogs.com/nhdlb/p/14048083.html#_label0 常规配置 daemonizeloglevellogfile设定库的数量 Units 单位 1、配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2、不区分大小写 #INC…

Android kotlin 实现仿京东多个item向左自动排队(横向、动手滑动、没有首尾滑动)功能

文章目录 一、实现效果二、引入依赖三、源码实现1、适配器2、视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.6,这个里面带的适配器,直接调用就即可 BaseRecyclerViewAdapt…

JavaScript基础知识回顾

JavaScript基础知识回顾 1.什么是JavaScript? JavaScript是一种专门为与网页交互而设计的脚本语言**,它由三个部分组成: 1.ECMAScript 提供核心语言功能。 2.文档对象模型(DOM)提供了访问和操作网页内容/元素的方法和接口。 …

IE9:继IE5以来,微软终于又出了一个给力版本

IE被称为最不遵守web标准的浏览器,不过从IE9RC开始,这一状况彻底改变了。 跨浏览器测试结果对比: Web标准 测试用例数 IE9 RC版 Mozilla Firefox 3.6.13 Opera 11.01 Apple Safari 5.0.3 Google Chrome 9.0.597.84 IE 8 HTML5 111 …