emilk/egui

Improve compile times of `eframe`

オープン

#4,481 opened on 2024/05/11

 (4 件のコメント) (6 件のリアクション) (0 人の担当者)Rust (2,102 件のフォーク)batch import
dependenciesgood first issuehelp wanted

Repository metrics

Stars
 (30,084 個のスター)
PR merge metrics
 (平均マージ 17d 17h) (30d で 41 merged PRs)

説明

eframe currently compiles in about 10s on my M3 MacBook Pro, as measured by

cargo clean && cargo build --timings -p eframe 

Getting rid of proc-macros

A lot of that time is waiting for proc-macro and syn so that we can start compiling bytemuck, thiserror, and foreign-types-macros (used by core-graphics, which is used by winit).

Getting rid of the proc-macros in bytemuck should be simple (replace by manual implementation of its unsafe traits for Color32, Vertex etc). Likewise, replacing thiserror should also be fairly trivial.

I haven't looked into foreign-types, but even removing some proc-macro usage should allow some crates to start compiling earlier, hopefully reducing the total end-to-end compilation time.

Other stuff

  • ahash has a build.rs takes a full second to run
  • icrate takes 5-6 seconds of CPU time

wgpu

Switching glow for wgpu adds another 10s, i.e. doubling the compilation time. To investigate the compilation time of wgpu, run:

cargo clean && cargo build --timings -p wgpu

コントリビューターガイド