Prerequisite to https://github.com/zed-industries/zed/pull/64257 * gpui: build inspector IDs only when the window's inspector exists, drop the inspector maps on close, skip inspector state lookups for absent or non-selected IDs * gpui: create inspector element renderers per inspector instance instead of at registration * inspector_ui: create the project and editors lazily per inspector session, keep the init task and subscriptions cancellable, hold the inspector weakly from the completion provider * lsp: bound the shutdown output drain by the same timeout as the shutdown request * gpui_platform: add an `inspector_render` benchmark that builds with the inspector in or out Mean time per rendered frame with the inspector closed; overhead is relative to the inspector compiled out. | Benchmark | Frame, compiled out | Frame, `main` | Frame, this PR | Overhead on `main` | Overhead on this PR | | --- | ---: | ---: | ---: | ---: | ---: | | 1,000 bare divs, never opened | 3.352 ms | 3.505 ms | 3.362 ms | +153 µs (+4.57%) | +10 µs (+0.29%) | | 1,000 bare divs, opened and closed twice | 3.349 ms | 3.508 ms | 3.364 ms | +159 µs (+4.76%) | +15 µs (+0.46%) | | 100 bare divs, opened and closed twice | 317.0 µs | 336.3 µs | 317.6 µs | +19 µs (+6.10%) | +1 µs (+0.18%) | | 10,000 bare divs, never opened | 56.617 ms | 58.925 ms | 56.472 ms | +2.31 ms (+4.08%) | -145 µs (-0.26%) | | 500 panel rows with text, hover, click, never opened | 4.173 ms | 4.451 ms | 4.179 ms | +278 µs (+6.67%) | +7 µs (+0.16%) | | 500 panel rows with text, hover, click, opened and closed twice | 4.197 ms | 4.448 ms | 4.159 ms | +252 µs (+6.00%) | -37 µs (-0.89%) | | 50 panel rows with text, hover, click, never opened | 523.4 µs | 543.3 µs | 522.3 µs | +20 µs (+3.80%) | -1 µs (-0.21%) | | 500 panel rows with text, hover, click, opened and closed twice, another window inspected | 4.191 ms | 4.469 ms | 4.176 ms | +278 µs (+6.64%) | -15 µs (-0.35%) | | editor, cursor moves (`crates/benchmarks`, `release-fast`) | 940.9 µs | 943.0 µs | 942.5 µs | +2 µs (+0.23%) | +2 µs (+0.17%) | Release Notes: - N/A - [GPUI] Optimize GPUI inspector's runtime cost by an order of magnitude
49 lines
1.3 KiB
TOML
49 lines
1.3 KiB
TOML
[package]
|
|
name = "gpui_platform"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
publish.workspace = true
|
|
license = "Apache-2.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
path = "src/gpui_platform.rs"
|
|
|
|
[features]
|
|
default = []
|
|
bench-support = ["gpui/bench-support", "gpui_macos/bench-support"]
|
|
font-kit = ["gpui_macos/font-kit"]
|
|
inspector = ["gpui/inspector"]
|
|
test-support = ["gpui/test-support", "gpui_macos/test-support", "gpui_windows/test-support"]
|
|
screen-capture = ["gpui/screen-capture", "gpui_macos/screen-capture", "gpui_windows/screen-capture", "gpui_linux/screen-capture"]
|
|
runtime_shaders = ["gpui_macos/runtime_shaders"]
|
|
wayland = ["gpui_linux/wayland"]
|
|
x11 = ["gpui_linux/x11"]
|
|
|
|
[[bench]]
|
|
name = "inspector_render"
|
|
harness = false
|
|
required-features = ["bench-support"]
|
|
|
|
[dependencies]
|
|
gpui.workspace = true
|
|
|
|
[dev-dependencies]
|
|
criterion.workspace = true
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
gpui_macos.workspace = true
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
gpui_windows.workspace = true
|
|
gpui = { workspace = true, features = ["windows-manifest"] }
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
|
|
gpui_linux.workspace = true
|
|
|
|
[target.'cfg(target_family = "wasm")'.dependencies]
|
|
gpui_web.workspace = true
|
|
console_error_panic_hook.workspace = true
|