C/C++集成开发环境编译速度变慢原因及解决方法
C/C集成开发环境编译速度变慢原因及解决方法现象描述“之前几秒钟可以编译完成的工程现在需要几分钟才能编译完成”“编译时进度条过会儿就会卡住不动需要等待十多分钟才能编译完成”“MRS, KeilVitis等多款集成开发环境都有不同程度的编译速度变慢现象 ”原因分析以上现象集中出现在更新了Windows 24H2系统版本的计算机上对比编译时计算机任务管理器后台进程及服务发现该编译变慢现象与运行的“Microsoft PCManager Service”有关。在安装该系统更新补丁后此服务会自动在后台运行监控计算机中新建的文件并进行扫描查验 各类集成开发环境在编译过程中会产生大量的中间文件从而导致编译过程整体耗时增加。同时该服务还会对计算机逻辑处理器任务调度进行一定的限制使GCC make -jxx等多线程编译指令也受到影响进一步加剧了编译耗时。解决方法未安装微软“电脑管家”的用户手动方式打开计算机管理-服务在右侧列表中找到Microsoft PCManager Service并选中,点击右键菜单项属性在弹出的窗口中将启动类型改为“禁用并点击“停止”按钮最后点击确定。自动方式上述操作也可以通过.bat脚本自动执行需管理员权限代码如下echo off::Script to disable Microsoft PC Manager Service safely setSERVICE_DISPLAY_NAMEMicrosoft PC Manager ServicesetSERVICE_NAMEPCManager Service Store::Checkforadministrator privileges net sessionnul21if%errorlevel%neq0(echo.echoecho ERROR:This script must be run as Administrator.echo Please right-click and selectRun as administrator.echopause exit/b1)echo.echo----------------------------------------------echo Disabling Windows service:echo Display Name:%SERVICE_DISPLAY_NAME%echo Service Name:%SERVICE_NAME%echo----------------------------------------------echo.echo Checkingifservice[%SERVICE_NAME%]exists...sc query%SERVICE_NAME%nul21iferrorlevel1(echo Error:Service%SERVICE_NAME%not found.echo Please verify the service name and try again.pause exit/b1)echo.echo Stopping service%SERVICE_NAME%...sc stop%SERVICE_NAME%nul21echo.echo Setting service startup type to DISABLED...sc config%SERVICE_NAME%startdisabled echo.echo Service has been successfully disabled.pause安装了微软“电脑管家”的用户测试发现即使手动关闭并禁用了上述服务但打开微软电脑管家软件时Microsoft PCManager Service还是会自动运行此时可以直接关闭下述“安全安装提示”配置来解决该编译变慢问题默认开启“Microsoft Defender”杀毒软件的用户将目标IDE 主程序或父目录添加到Microsoft Defender软件的排除项中也可以解决一些场景下的编译变慢问题系统-设置-隐私和安全性-Windows安全中心-病毒和威胁防护-病毒和威胁防护设置-管理设置-排除项-添加和删除排除项