gpui: Reduce amount of monomorphizations taking place#48014
Conversation
Re-lands #3266 after recent scheduler changes
|
What does |
|
Then, the problem (and excessive monomorphizations) come from a fact that each closure you pass into that function is a separate instantiation of On the flipside, it does not necessarily have to degrade the performance of your program:
|
|
Thanks for such a detailed explanation! I was about to ask about memory allocation but you covered that already. |
…#48014) Re-lands zed-industries#3266 after recent scheduler changes Back-of-napkin calculation: editor tests (build) went from 32s to 17s. Release Notes: - N/A
Key changes: - Reduce monomorphizations in GPUI app.rs (zed-industries#48014) - Entities no longer implement Element directly, go through AnyElement (zed-industries#48217) - D3D11 resource upload optimization (zed-industries#48282) - Migrate features.edit_prediction_provider to edit_predictions.provider (zed-industries#48224) - Make mercury and sweep non-experimental (zed-industries#48227) - CompanionView consolidation in block_map (zed-industries#48223) - Show memory used by language servers (zed-industries#48226) - Settings links open sub pages (zed-industries#48212) - Tool security rules that can't be overridden (zed-industries#48209) - Add sweep_ai privacy mode setting (zed-industries#48220) - Configurable REPL output size limits (zed-industries#47114) - Fix .editorconfig files in subdirectories (zed-industries#48203) - Security updates: bytes v1.11.1, jsonwebtoken v10 - Git UI: hide "View on GitHub" for stashes (zed-industries#48271) - Indent guide fix in tree view with collapsed folders (zed-industries#48194) - Edit prediction fixes and improvements Conflict resolution: - collab/completion.rs, collab/rpc.rs: deleted (collab removed) - vim/search.rs: deleted (vim removed) - livekit_api/Cargo.toml: deleted (livekit removed) - GPUI files: deleted from Glass (handled in Obsydian-HQ/gpui) - migrations: combined both ours (m_2026_02_06) and upstream (m_2026_02_02, m_2026_02_03) - project.rs: kept collab functions removed, restored handle_create_file_for_peer for remote dev - lsp_store.rs: removed collab-only set_language_server_statuses_from_proto - proto.rs: kept CreateFileForPeer, removed CreateChannel/CreateChannelResponse - remote_servers.rs: merged import lists (kept native button imports + added Action) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Re-lands #3266 after recent scheduler changes
Back-of-napkin calculation: editor tests (build) went from 32s to 17s.
Release Notes: