Add a setting to show time to first window draw and frames per second in status bar (#16422)

I want to showcase Zed's performance via videos, and this seemed like a
good way to demonstrate it.


https://github.com/user-attachments/assets/f4a5fabc-efe7-4b48-9ba5-719882fdc856

Release Notes:

- On macOS, you can now set assign `performance.show_in_status_bar:
true` in your settings to show the time to the first window draw on
startup and then current FPS of the containing window's renderer.

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
Co-authored-by: Danny Hua <danny.hua@hey.com>
This commit is contained in:
Nathan Sobo 2024-08-18 15:22:19 -06:00 committed by GitHub
parent 6f93b42ecb
commit 11753914d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 524 additions and 61 deletions

View file

@ -266,6 +266,7 @@ fn init_ui(
welcome::init(cx);
settings_ui::init(cx);
extensions_ui::init(cx);
performance::init(cx);
cx.observe_global::<SettingsStore>({
let languages = app_state.languages.clone();
@ -315,6 +316,7 @@ fn init_ui(
}
fn main() {
let start_time = std::time::Instant::now();
menu::init();
zed_actions::init();
@ -326,7 +328,9 @@ fn main() {
init_logger();
log::info!("========== starting zed ==========");
let app = App::new().with_assets(Assets);
let app = App::new()
.with_assets(Assets)
.measure_time_to_first_window_draw(start_time);
let (installation_id, existing_installation_id_found) = app
.background_executor()