开发 Zed

请参阅特定平台说明,以从源代码构建 Zed

如果您想开发协作功能,请另外参阅

钥匙串访问

Zed 将秘密存储在系统钥匙串中。

然而,当在 macOS(以及可能其他平台)上运行 Zed 的开发版本时,尝试访问钥匙串会导致大量钥匙串提示,需要一遍又一遍地输入您的密码。

在 macOS 上,这是由于开发版本没有稳定的身份造成的。即使您选择“始终允许”选项,下次二进制文件中的任何内容发生更改时,操作系统仍会再次提示您输入密码。

这很快就会变得烦人并阻碍开发速度。

这就是为什么,默认情况下,当运行 Zed 的开发版本时,会使用替代凭证提供程序来绕过系统钥匙串。

注意:这适用于开发版本。对于所有非开发发布渠道,始终使用系统钥匙串。

如果您需要在开发版本中使用真实的系统钥匙串进行测试,请设置以下环境变量运行 Zed:

ZED_DEVELOPMENT_USE_KEYCHAIN=1

性能测量

Zed 包含一个帧时间测量系统,可用于分析每帧渲染所需的时间。这在比较不同版本之间的渲染性能或优化帧渲染代码时特别有用。

使用 ZED_MEASUREMENTS

要启用性能测量,请设置 ZED_MEASUREMENTS 环境变量

export ZED_MEASUREMENTS=1

启用后,Zed 会将帧渲染时间信息打印到 stderr,显示每帧渲染所需的时间。

性能比较工作流

以下是比较不同版本之间帧渲染性能的典型工作流

  1. 启用测量

    export ZED_MEASUREMENTS=1
    
  2. 测试第一个版本

    • 检出您要测量的提交
    • 以发布模式运行 Zed 并使用 5-10 秒:cargo run --release &> version-a
  3. 测试第二个版本

    • 检出您要比较的另一个提交
    • 以发布模式运行 Zed 并使用 5-10 秒:cargo run --release &> version-b
  4. 生成比较

    script/histogram version-a version-b
    

script/histogram 工具可以接受任意数量的测量文件,并将生成一个直方图可视化,比较所提供版本之间的帧渲染性能数据。

使用 util_macros::perf

对于基准测试单元测试,使用来自 util_macros crate 的 #[perf] 属性进行注释。然后运行 cargo perf-test -p $CRATE 来对它们进行基准测试。有关深入的示例和解释,请参阅 crates/util_macrostooling/perf 上的 rustdoc 文档。