Win11系统下Golang编译运行异常缓慢的原因和解决方法
前言:如果你既没有杀毒软件,电脑配置也可以。那么大概率就是微软给Win11
用户系统更新时新加了MCSPCMANAGER
/MCSMANAGER
这个服务进程导致的问题。
相信各位最近会突然发现自己的 Goland
在运行一些普通简短的代码时,会发现代码运行异常缓慢的一个现象。例如:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
这段随便一个入门 Go
语言的用户都能写出来的简短代码,都需要运行 30s-90s
不等的时间。
你在国内搜索相关问题会发现大伙都在质疑能出现这问题的人都是杀毒软件导致的,没有关杀毒软件啊导致这一问题的产生。这样的问题早在19年甚至之前就已经出现过了,所以大伙都没怎么在意,只会沿用以往的见识和经验去理解问题,这没什么问题。
还有部分开发人员提示说 CPU
核心运行的原因,需要代码编译运行时配置 CPU
核心数,多核心并发编程运行。但我在查找 go env
里面的时候发现并没有对应环境配置项,按道理来说即便默认,官方也应该默认是读取用户核心数在编译时都能用起来。反正我试了一下并没有较大的提升。
外网也一样,在 JetBrain
的 Goland
官方论坛下面回应也大多是 Windows Defender
等类似杀毒软件造成的原因,但这些记录都是7年前甚至更久的,这问题我第一次发现则是在25年的6月份,我既没有装过任何 360
等杀毒软件,也没有其他防火墙之类的应用程序,总体来说这方面算干净的,都还是出现了问题,我相信出现这个问题的大伙在排查的时候也和我差不多甚至一样,普遍回复里面都没有对应的解决答案,很郁闷。
于是时不时排查与搜索论坛,到现在终于解决了,是浓眉大眼的微软搞得鬼。 在最近 Win11
的更新下,微软给用户新更新了一个类似于杀毒软件排查问题的服务进程 MCSPCMANAGER
或者 MCSMANAGER
。这玩意会对于Golang
代码的编译和运行有强制检查,导致在这期间会大幅降低 Golang
的编译和运行效率。
如果想要让编译速度快,就把这个服务进程给关闭或者删除掉吧。本人亲试,原先的简短的代码需要编译运行 2min
,关闭掉服务进程后直接是 0.3s
的编译运行时间。
希望本文章能够帮助到各位,有良好的开发体验。
评论(0)