adds tracing for instrumenting non-async functions (#44147)

Tracing code is not included in normal release builds
Documents how to use them in our performance docs
Only the maps and cursors are instrumented atm

# Compile times:
current main: fresh release build (cargo clean then build --release)
377.34 secs
current main: fresh debug build (cargo clean then build )
89.31 secs

tracing tracy: fresh release build (cargo clean then build --release)
374.84 secs
tracing tracy: fresh debug build (cargo clean then build )
88.95 secs

tracing tracy: fresh release build with timings (cargo clean then build
--release --features tracing)
375.77 secs
tracing tracy: fresh debug build with timings (cargo clean then build
--features tracing)
90.03 secs


Release Notes:

- N/A

---------

Co-authored-by: localcc <work@localcc.cc>
This commit is contained in:
David Kleingeld
2025-12-05 17:23:06 +00:00
committed by GitHub
co-authored by localcc
parent 07fe8e9bb1
commit b558be7ec6
38 changed files with 898 additions and 451 deletions
+5 -2
View File
@@ -13,7 +13,6 @@ name = "git_ui"
path = "src/git_ui.rs"
[features]
default = []
test-support = ["multi_buffer/test-support"]
[dependencies]
@@ -62,7 +61,8 @@ watch.workspace = true
workspace.workspace = true
zed_actions.workspace = true
zeroize.workspace = true
ztracing.workspace = true
tracing.workspace = true
[target.'cfg(windows)'.dependencies]
windows.workspace = true
@@ -78,3 +78,6 @@ settings = { workspace = true, features = ["test-support"] }
unindent.workspace = true
workspace = { workspace = true, features = ["test-support"] }
zlog.workspace = true
[package.metadata.cargo-machete]
ignored = ["tracing"]
+2
View File
@@ -46,6 +46,7 @@ use workspace::{
notifications::NotifyTaskExt,
searchable::SearchableItemHandle,
};
use ztracing::instrument;
actions!(
git,
@@ -469,6 +470,7 @@ impl ProjectDiff {
}
}
#[instrument(skip_all)]
fn register_buffer(
&mut self,
path_key: PathKey,