内容提要
在测试 Rust 编译器时发现执行速度慢,怀疑与 macOS 更新或 VS Code 相关。通过脚本测试发现首次执行新文件时会触发 Gatekeeper 安全扫描,导致延迟。给予 VS Code 完全磁盘访问权限后,问题解决,执行速度恢复正常。
延伸解读
Gatekeeper 的影响
macOS 的 Gatekeeper 安全机制会在首次执行新文件时进行扫描,这可能导致明显的性能下降。开发者在使用 Rust 编译器或其他工具时,需注意这一点,尤其是在频繁创建和执行新脚本时。
完全磁盘访问权限的作用
给予 VS Code 完全磁盘访问权限后,Gatekeeper 扫描被跳过,执行速度显著提升。这表明,macOS 的安全机制与应用程序的信任级别密切相关,开发者应合理配置权限以优化工作流程。
学习型安全评估系统
macOS 的安全评估系统具有学习能力,会记住过去的信任决策。这意味着一旦某个程序被评估为可信,后续执行时可能不会再触发 Gatekeeper 扫描,提升了效率。
Q&A
为什么在 macOS 上执行 Rust 编译器时速度会变慢?
执行速度慢是因为首次执行新文件时会触发 Gatekeeper 安全扫描,导致延迟。
如何解决 VS Code 中的执行速度慢的问题?
给予 VS Code 完全磁盘访问权限后,执行速度恢复正常。
Gatekeeper 安全扫描的作用是什么?
Gatekeeper 安全扫描对首次执行的新可执行文件进行代码签名验证和恶意软件检查。
什么是 Full Disk Access,它如何影响执行速度?
Full Disk Access 是 macOS 中的最高级别信任授权,允许程序跳过完整的 Gatekeeper 扫描,从而提高执行速度。
如何检查是否是 Gatekeeper 导致的执行速度慢?
可以通过查看系统日志,使用命令 'log show -- predicate 'subsystem == "com.apple.syspolicy.exec"' -- last 5m -- style compact | grep performScan' 来检查。
macOS 的安全评估系统是如何工作的?
macOS 的安全评估系统是“学习型”的,会记住过去的信任决策,并根据历史记录进行评估。