![9747d6f52b4645d7fdc04b22787eb708.png](https://img-blog.csdnimg.cn/img_convert/9747d6f52b4645d7fdc04b22787eb708.png)
最近将 macOS 升级到 Big Sur 后感觉 VSCode 没有之前那么好用,内置终端(Integrated Terminal)经常像下面图片中一样偶现卡顿0.5到1秒,这种体验让强迫症不能容忍。查了一下 VSCode 的 Issue 发现可能是由于 Big Sur 的 JIT 策略变更导致的。
![81b43e1358d4e7001b46c725cf6fea29.png](https://img-blog.csdnimg.cn/img_convert/81b43e1358d4e7001b46c725cf6fea29.png)
解决方案
要消除这种卡顿的现象,运行下面的命令行即可:
codesign --remove-signature /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app
如果你像我一样使用 VSCode Insiders 版本,则需要运行下面的命令:
codesign --remove-signature /Applications/Visual Studio Code - Insiders.app/Contents/Frameworks/Code - Insiders Helper (Renderer).app
该命令的作用是将 VSCode 编辑器的 Renderer 签名去掉,大概这样就不会触发 JIT 中的内存复制导致延迟了。
相关 Issues
- 该 Issue 直接指出了问题在 Big Sur [microsoft/vscode] Lagging/freezing using VSCode Insiders in Big Sur #107103
- [microsoft/vscode] Integrated Terminal Lags Intermittently #105446
- [electron/electron] child_process spawn locks up renderer for 300 - 3000ms on signed app on macOS Big Sur #26143
- [libuv / libuv] uv_spawn is slow when parent process allocates mmap with MAP_JIT flag #3050