最近在 Windows 更新之後不知道為甚麼 go build 變得很慢,我在想會不會是因為我的 SSD 快要死了所以讀寫速度掉不少,於是有一天我終於忍不住去跑 Crystal Disk Mark
![](https://imuslab.com/wordpress/wp-content/uploads/2025/02/圖片.png)
所以我就在想,會不會是 Go compiler 的 cache 問題,於是用以下 command 把 go cache 的 folder 換到一只直插 PCIE 的 SSD 上面
> go env -w GOCACHE=E:\tmp\gocache
> go env GOCACHE
E:\tmp\gocache
![](https://imuslab.com/wordpress/wp-content/uploads/2025/02/圖片-1.png)
結果還是很慢。而且 go compiler 的 CPU usage 也卡在 10% 左右,然後我就注意到,另外大約 70% 的 CPU usage 都是被其他東西吃掉的。被甚麼吃掉?
![](https://imuslab.com/wordpress/wp-content/uploads/2025/02/圖片-2.png)
幹你的又是 Windows Security。它對 Go compiler 產出來的每個 binary cache file 掃描,這樣不慢才怪。Windows 自 Win7 之後從來就沒好過,要不是我間中要打遊戲我一早就換去用 Linux 了。
所以知道原因之後要解決就很簡單,就是去 Windows Security > 管理 把即時保護設定關掉
![](https://imuslab.com/wordpress/wp-content/uploads/2025/02/圖片-3.png)
然後 go build 就回復到正常 build 速度了。