Find a file
Anthony Eid 983dcf3afd gpui: Expose foreground executor work as a raw histogram in bench reports
Follows up on #63035, which added ForegroundWorkSummary and a private DurationHistogram wrapper (histogram + exact total_nanos) to report GPUI's foreground journal timings through BenchReport::foreground_work(). Anthony pointed out the exact-total convenience did not justify the extra types, especially since GPUI already exposes hdrhistogram::Histogram directly elsewhere (e.g. profiler::FrameDurationSnapshot, profiler::InputLatencySnapshot).

BenchReport::foreground_work() now returns a cloned hdrhistogram::Histogram<u64> of recorded nanosecond durations directly, instead of Option<ForegroundWorkSummary>. Empty work is an empty histogram rather than None. Callers get is_empty/len/max/value_at_quantile/iteration directly, with no RefCell borrow held. The internal WindowFrameSnapshot field switches from the private DurationHistogram wrapper to a plain Histogram<u64>, and the printed report drops the previously side-tracked exact total (which required the wrapper) rather than replace it with a less precise substitute; mean/percentiles/max/frame-budget overruns are still computed straight from the histogram the same way the other frame histograms already do.

Testing:
- cargo nextest run -p gpui --features bench --lib bench_context (4/4 pass, updated to assert directly on the returned histogram)
- cargo nextest run -p gpui --features bench --lib profiler (48/48 pass, unchanged)
- cargo check -p benchmarks --benches (existing #[gpui::bench] consumers still compile)
- cargo fmt --package gpui -- --check and ./script/clippy -p gpui --features bench are clean
2026-08-21 15:56:22 -04:00
.agents/skills Add dylint lint library for Zed-specific patterns (#58496) 2026-07-03 22:05:34 +00:00
.cargo livekit: Use our build of libwebrtc.a (#51433) 2026-03-16 10:47:36 +01:00
.cloudflare Improve docs AI readiness (#59577) 2026-07-08 20:54:51 +00:00
.config Increase timeout for test_random_blocks (#50724) 2026-03-04 12:25:12 -05:00
.factory Add humanizer skill for AI writing pattern detection (#50021) 2026-02-24 14:58:52 -06:00
.github Automate cleanup of unsigned and stale draft pull requests (#62936) 2026-08-21 07:53:28 +00:00
.wezel Add wezel scenario for an incremental editor build (#62016) 2026-08-02 18:40:37 +00:00
.zed agent: Remove old edit file tool (#55612) 2026-05-04 09:54:39 +00:00
assets Disable ask_user by default (#63036) 2026-08-21 17:42:46 +00:00
ci Move Nightly release to gh-workflow (#41349) 2025-10-28 13:57:23 -06:00
crates gpui: Expose foreground executor work as a raw histogram in bench reports 2026-08-21 15:56:22 -04:00
docs docs: Document language auto-indentation rules (#63009) 2026-08-21 10:43:42 +00:00
extensions proto: Bump to v0.3.3 (#62396) 2026-08-12 08:35:43 +00:00
legal legal: Use absolute URLs for Terms of Service and Privacy Policy links (#62684) 2026-08-17 09:35:54 +00:00
nix Switch from cargo-machete to cargo-shear (#62643) 2026-08-20 10:08:48 +00:00
script Update .rules to prompt for self-review before submitting PR (#62945) 2026-08-21 10:32:14 +00:00
tooling Switch from cargo-machete to cargo-shear (#62643) 2026-08-20 10:08:48 +00:00
.git-blame-ignore-revs Add PR 50413 to .git-blame-ignore-revs (#50421) 2026-03-01 00:50:33 +01:00
.gitattributes
.gitignore csv_preview: Add single-line row displaying mode (#61127) 2026-07-16 19:28:22 +00:00
.mailmap Update .mailmap (#47413) 2026-01-22 23:57:26 +05:30
.prettierrc
.rules Update .rules to prompt for self-review before submitting PR (#62945) 2026-08-21 10:32:14 +00:00
AGENTS.md ai: Symlink an AGENTS.md file to .rules (#45939) 2026-01-19 15:29:42 +01:00
Cargo.lock markdown: Restore fallback language highlighting for untagged code blocks (#63023) 2026-08-21 16:00:50 +00:00
Cargo.toml Switch from cargo-machete to cargo-shear (#62643) 2026-08-20 10:08:48 +00:00
CLAUDE.md
clippy.toml Revert "Revert scheduler update (#46659)" (#46671) 2026-01-14 07:19:13 +00:00
CODE_OF_CONDUCT.md
compose.yml Remove Postgres and stripe-mock from Docker Compose (#48313) 2026-02-04 03:42:58 +00:00
CONTRIBUTING.md Update issues link in CONTRIBUTING.md (#62937) 2026-08-20 12:23:30 +00:00
debug.plist
default.nix nix: Use flake-parts, partitions, and treefmt-nix (#45321) 2026-02-02 14:26:42 +00:00
Dockerfile-collab Bump rustc to 1.97 (#62395) 2026-08-09 22:29:52 +00:00
Dockerfile-collab.dockerignore
Dockerfile-cross.dockerignore
Dockerfile-distros Removal of mold/wild scripts and mentions in docs (#53078) 2026-04-08 21:20:02 +03:00
Dockerfile-distros.dockerignore
flake.lock Bump rustc to 1.97 (#62395) 2026-08-09 22:29:52 +00:00
flake.nix ci: Remove garnix substitutor (#58033) 2026-05-29 05:56:42 +00:00
GEMINI.md
LICENSE-APACHE
LICENSE-GPL
livekit.yaml
lychee.toml
Procfile
Procfile.web
README.md gpui: Expose foreground executor work as a raw histogram in bench reports 2026-08-21 15:56:22 -04:00
renovate.json
REVIEWERS.conl Remove past reviewer (#51767) 2026-03-17 16:34:35 +00:00
rust-toolchain.toml Bump rustc to 1.97 (#62395) 2026-08-09 22:29:52 +00:00
rustfmt.toml nix: Use flake-parts, partitions, and treefmt-nix (#45321) 2026-02-02 14:26:42 +00:00
shell.nix nix: Use flake-parts, partitions, and treefmt-nix (#45321) 2026-02-02 14:26:42 +00:00
typos.toml editor: Align selections by display position instead of byte column (#61997) 2026-08-14 00:20:27 +00:00

Important

Remove this line to confirm you've reviewed this PR before submitting.

Zed

Zed CI

Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.


Installation

On macOS, Linux, and Windows you can download Zed directly or install Zed via your local package manager (macOS/Linux/Windows).

Other platforms are not yet available:

Developing Zed

Contributing

See CONTRIBUTING.md for ways you can contribute to Zed.

Also... we're hiring! Check out our jobs page for open roles.

Licensing

Zed source code is licensed primarily under GPL-3.0-or-later, with Apache-2.0 components where marked.

License information for third party dependencies must be correctly provided for CI to pass.

We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:

  • Is it showing a no license specified error for a crate you've created? If so, add publish = false under [package] in your crate's Cargo.toml.
  • Is the error failed to satisfy license requirements for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to the accepted array in script/licenses/zed-licenses.toml.
  • Is cargo-about unable to find the license for a dependency? If so, add a clarification field at the end of script/licenses/zed-licenses.toml, as specified in the cargo-about book.

Sponsorship

Zed is developed by Zed Industries, Inc., a for-profit company.

If youd like to financially support the project, you can do so via GitHub Sponsors. Sponsorships go directly to Zed Industries and are used as general company revenue. There are no perks or entitlements associated with sponsorship.