about summary refs log tree commit diff
path: root/tests/coverage/branch/lazy-boolean.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-12-08 19:30:33 +0000
committerbors <bors@rust-lang.org>2024-12-08 19:30:33 +0000
commit4d669fb34e7db6f3825d01e4c59b7996f0531431 (patch)
treede052c5e6b618d190ca3803fc05e7cfdff506d98 /tests/coverage/branch/lazy-boolean.rs
parentf33a8c6426074b7ce8d08740e9805fdca96ee150 (diff)
parent9b4a247190574056b93b01ed50d272e71d07ba71 (diff)
downloadrust-4d669fb34e7db6f3825d01e4c59b7996f0531431.tar.gz
rust-4d669fb34e7db6f3825d01e4c59b7996f0531431.zip
Auto merge of #133134 - Walnut356:synth_prov, r=Mark-Simulacrum
Don't use a SyntheticProvider for literally every type

Replaces a glob regex with individualized imports for each standard library type. This improves debugger performance by quite a bit when populating lots of values with lots of fields

With the glob, afaik every single value of every single type that the debugger renders is run through a python function that does quite a few string comparisons (i plan to fix those next) to determine the SyntheticProvider to use.  It looks like DefaultSyntheticProvider's functions internally call the liblldb c++ functions, which ends up with identical behavior to not using a SyntheticProvider at all, except you have extra python round trips slowing things down.

These sample vidoes were run on x86-64-pc-windows-gnu. `vect` is a 1000 element `Vec<Big>`, `Big` contains a dozen or so `Small`, and `Small` contains a dozen or so `[i32; 5]`

Before:

https://github.com/user-attachments/assets/07c31fe7-e126-4c2e-8ae9-cfe36e351d3f

After:

https://github.com/user-attachments/assets/6c0d1a45-1ffe-46de-95a0-5dbe59a173b5

---

try-job: aarch64-apple
Diffstat (limited to 'tests/coverage/branch/lazy-boolean.rs')
0 files changed, 0 insertions, 0 deletions