💡
原文中文,约3400字,阅读约需9分钟。
📝
内容提要
在测试 Rust 编译器时发现执行速度慢,怀疑与 macOS 更新或 VS Code 相关。通过脚本测试发现首次执行新文件时会触发 Gatekeeper 安全扫描,导致延迟。给予 VS Code 完全磁盘访问权限后,问题解决,执行速度恢复正常。
🎯
关键要点
- 在测试 Rust 编译器时发现执行速度慢,怀疑与 macOS 更新或 VS Code 相关。
- 通过脚本测试发现首次执行新文件时会触发 Gatekeeper 安全扫描,导致延迟。
- 在 VS Code 终端中,首次执行和再次执行的耗时差距大约为 30-50 倍。
- 使用 log show 查看系统日志,发现每次执行新文件时 syspolicyd 都会进行 Gatekeeper 扫描。
- 确认原因后,给予 VS Code 完全磁盘访问权限后,执行速度恢复正常。
- Full Disk Access 在 macOS 中对应的是最高级别的信任授权,能够跳过完整的 Gatekeeper 扫描。
- syspolicyd 的扫描评估结果存储在 SQLite 数据库中,AppleSystemPolicy.kext 在内核中维护运行时缓存。
- macOS 的安全评估系统是“学习型”的,记住过去的信任决策。
- 如果遇到类似问题,可以检查是否是 Gatekeeper 的原因,并尝试给予程序 Full Disk Access。
➡️