开发 Zed
请参阅特定平台说明,以从源代码构建 Zed
如果您想开发协作功能,请另外参阅
钥匙串访问
Zed 将秘密存储在系统钥匙串中。
然而,当在 macOS(以及可能其他平台)上运行 Zed 的开发版本时,尝试访问钥匙串会导致大量钥匙串提示,需要一遍又一遍地输入您的密码。
在 macOS 上,这是由于开发版本没有稳定的身份造成的。即使您选择“始终允许”选项,下次二进制文件中的任何内容发生更改时,操作系统仍会再次提示您输入密码。
这很快就会变得烦人并阻碍开发速度。
这就是为什么,默认情况下,当运行 Zed 的开发版本时,会使用替代凭证提供程序来绕过系统钥匙串。
注意:这仅适用于开发版本。对于所有非开发发布渠道,始终使用系统钥匙串。
如果您需要在开发版本中使用真实的系统钥匙串进行测试,请设置以下环境变量运行 Zed:
ZED_DEVELOPMENT_USE_KEYCHAIN=1
性能测量
Zed 包含一个帧时间测量系统,可用于分析每帧渲染所需的时间。这在比较不同版本之间的渲染性能或优化帧渲染代码时特别有用。
使用 ZED_MEASUREMENTS
要启用性能测量,请设置 ZED_MEASUREMENTS 环境变量
export ZED_MEASUREMENTS=1
启用后,Zed 会将帧渲染时间信息打印到 stderr,显示每帧渲染所需的时间。
性能比较工作流
以下是比较不同版本之间帧渲染性能的典型工作流
-
启用测量
export ZED_MEASUREMENTS=1 -
测试第一个版本
- 检出您要测量的提交
- 以发布模式运行 Zed 并使用 5-10 秒:
cargo run --release &> version-a
-
测试第二个版本
- 检出您要比较的另一个提交
- 以发布模式运行 Zed 并使用 5-10 秒:
cargo run --release &> version-b
-
生成比较
script/histogram version-a version-b
script/histogram 工具可以接受任意数量的测量文件,并将生成一个直方图可视化,比较所提供版本之间的帧渲染性能数据。
使用 util_macros::perf
对于基准测试单元测试,使用来自 util_macros crate 的 #[perf] 属性进行注释。然后运行 cargo perf-test -p $CRATE 来对它们进行基准测试。有关深入的示例和解释,请参阅 crates/util_macros 和 tooling/perf 上的 rustdoc 文档。