解决了Keil编译非常慢的问题,从编译11分钟变成了8秒钟

开篇直接放图,开门见山

解决前

解决后

一个RTOS+LVGL库的keil工程给我编译了整整11分钟47秒,看到这一幕给我气笑了。

引言

因为一些原因,最近几个星期没有用过keil来写代码,昨天用keil的时候,突然发现怎么我的Keil怎么变得这么慢了?花了居然两分钟。

于是我换了最简单的点灯的程序编译,平常只需要5秒钟的编译,居然花了我一分钟半。。。

编译最简单的点灯程序耗费的时间

然后我换了一个内存占用大一点的工程来编译,于是就出现了开篇的一幕。

1.首先猜测是否Keil的问题

明明之前都用的好好的,怎么今天变成这样了。之前我从来没有遇到过编译既然这么慢的问题,就算慢,也只是有点慢而已,参考别人的文章稍微修改一下Keil的配置就好了。

我检查了一下Keil的配置,发现应该不是Keil配置的问题,毕竟keil配置再怎么配也不会让编译了11分钟的工程,变成8秒钟吧

然后我重装了一下Keil,高版本重装Keil,低版本重装Keil都不行。

到这一步都还没有解决我就感觉这个问题不好办了,因为已经排除了Keil的问题,我开始初步怀疑windows系统的问题。。。

2.是否是Windows系统的问题?

我查了一下博客资料,看到这一篇

参考文章链接:嵌入式开发避坑指南 | Keil编译龟速难题破解:杀毒软件竟是元凶?_keil编译慢怎么回事-CSDN博客

删除了微软电脑管家之后的截图

这篇文章的笔者说是电脑下载了微软电脑管家的问题,我检查了一下我的电脑是否下载了这个软件,一检查,还真有,我马上就给他卸载了。

我以为事情就这样结束了,结果问题并没有得到解决,编译还是一样的慢,看来并不是这个问题。

我又翻了好多篇博客文章,而且Keil编译慢这方面的文章又很少,也问了好多群友,电脑也重启了好几次,依旧没有找到问题的解决办法。

3.想打算用VSCode代替Keil来编译

花了好几个小时,还是没有解决问题,都打算用VSCode来代替Keil了。因为之前在VSCode搭建过Keil的环境

VSCode编译最简单的点灯程序

结果还是花了将近30多秒的时间,之前用VSCode编译本来只需要三四秒。。。

用VScode代替Keil太麻烦了,很多教学视频、项目对接都是用Keil,,真代替了十分不便,而且VSCode编译,也还是太慢了,问题还是没有解决。

再解决不了,真要给电脑重装系统了。

4.问题分析初见端倪

VSCode编译的过程

正当我一筹莫展时,我发现VSCode一个一个编译库函数文件时,每一个库函数文件编译完成的尾部好像都有一条Delay函数卡住,而且Delay函数还是一个固定值,周期性的编译库函数文件。

外加上今天我发现我电脑截图响应的时间比以前慢上了好几秒,于是我现在十分怀疑是Windows系统的问题。

5.事情迎来转折点

从发现问题到现在已经过了两三个小时了,这时候的我其实已经快要放弃了,因为如果是windows系统的问题的话本身就很难解决

抱着最后再试一试的心态,再找找其他的办法。

我感觉到windows系统带来的问题最直观的就是电脑截图变卡了,于是我在谷歌浏览器搜索了一下这个问题:电脑截图很慢卡顿是怎么回事?

我看到了这个:

这个方法给我的感觉就十分不同,感觉有希望解决我的问题,于是我尝试了一下这个方法

万万没想到,天无绝人之路,按照步骤做,然后重启电脑,没想到既然解决了!这是我怎么也没有想到的

问题最终解决,解决之后十一分钟的编译时间,变成了八秒钟。

提醒一下一定要记得勾选“隐藏所有Microsoft服务”。没有勾选这个选项的话,会导致电脑重启之后,电脑WIFI、蓝牙什么的其他基础功能直接就没有了。(试过了)

6.产生问题的原因

我大概推测一下,有可能是我最近安装了一些软件或者插件的原因,这些软件或者插件会在系统配置里直接就开机自启动,在后台运行,重启电脑也没用,而且你也发现不了。我最近也没有安装什么病毒,什么危险性的软件,都是下载的权威的软件和一些资料,不知道为什么会怎样。既然已经解决了问题,我也不继续往下揪了,卡了我半天的时间,早已经没有耐心去刨根问底了,以后再出现什么问题再说吧。

7.总结

这次问题的解决可以说是十分的侥幸了,问题的根源并没有找到,但是问题解决了就好。这些功能全部禁掉之后不知道后续会不会有什么影响,不过这些功能都不是windows微软的基础功能,因为微软的基本服务我们都已经隐藏了,不会有什么太大的影响,不过目前唯一发现的影响就是:我的steam的wallpaper不能开机自启动了哈哈,找到系统配置把和自己相关的再打开了就行了。

后续如果有问题的话我再记录,就先到这吧

修改时间:2025/8/22

8.补充

距离发布这篇文章已经过了两个月的时间了,这两个月没有遇到任何相关问题了。看了评论区的留言,最终发现是微软近期更新winodows系统的锅,为这篇文章再做一些补充吧。 下面是评论区里比较有代表性的评论:

大家通过进一步的问题的分析,不约而同的都指向了系统配置的Microsoft PC Manager Service这个选项。Microsoft PC Manager Service翻译过来就是“微软电脑管理服务”。 笔者查阅了一些资料,发现这个Microsoft PC Manager Service其实就是微软电脑管家,Microsoft PC Manager Service服务会占用电脑CPU的性能,从而导致延迟增加,编译变慢。

系统配置->服务:Microsoft PC Manager Service选项

出现这个问题之后,小概率是微软电脑管家没有删干净,但论坛普遍反映的是windows更新的锅,不然也不会近期出现这么多人都遇到相同的问题。所以最终解决方案就是:读者按下Win+R,输入msconifg,切换到“服务”界面,把Microsoft PC Manager Service禁用即可。