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

news/2024/12/26 20:02:03/

.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 打印出该进程下线程日志…

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

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