1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 14:50:03 -04:00

Use mimalloc for benchmarks (#7029)

`mimalloc` is a _much_ faster allocator, especially important when doing
a lot of small allocations (which egui does).

We use `mimalloc` in Rerun, and I recommend everyone to use it.

## The difference it makes

![image](https://github.com/user-attachments/assets/b22e0025-bc5e-4b3c-94e0-74ce46e86f85)
This commit is contained in:
Emil Ernerfeldt
2025-05-06 17:54:06 +02:00
committed by GitHub
parent 5bb20f511e
commit 7216d0e386
9 changed files with 39 additions and 1 deletions

View File

@@ -56,8 +56,9 @@ serde = { workspace = true, optional = true }
[dev-dependencies]
criterion.workspace = true
egui_kittest = { workspace = true, features = ["wgpu", "snapshot"] }
egui = { workspace = true, features = ["default_fonts"] }
egui_kittest = { workspace = true, features = ["wgpu", "snapshot"] }
mimalloc.workspace = true # for benchmarks
rand = "0.9"
[[bench]]

View File

@@ -8,6 +8,9 @@ use egui::{Button, Id, RichText, TextureId, Ui, UiBuilder, Vec2};
use egui_demo_lib::LOREM_IPSUM_LONG;
use rand::Rng as _;
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; // Much faster allocator
/// Each iteration should be called in their own `Ui` with an intentional id clash,
/// to prevent the Context from building a massive map of `WidgetRects` (which would slow the test,
/// causing unreliable results).