Open morrisonlevi opened 3 weeks ago
Benchmark execution time: 2024-06-12 23:26:42
Comparing candidate commit a8fc7ffaf2c224eb36fa088733a718e3f1bada75 in PR branch levi/smaller-frames
with baseline commit 9f4a6a50e8c487127431af623037a08d9dc1c2b1 in branch master
.
Found 5 performance improvements and 0 performance regressions! Performance is the same for 24 metrics, 7 unstable metrics.
wall_time
[-556.277ns; -528.070ns] or [-2.347%; -2.228%]wall_time
[-725.636ns; -696.953ns] or [-2.885%; -2.771%]instructions
[-6.2K instructions; -6.2K instructions] or [-5.991%; -5.980%]instructions
[-5.5K instructions; -5.4K instructions] or [-5.260%; -5.231%]instructions
[-4.3K instructions; -4.3K instructions] or [-4.142%; -4.114%]All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 79.40%. Comparing base (
9f4a6a5
) to head (a8fc7ff
).
PROF-9925
Description
Previously, each frame was 7 64 bits. They are now 3 64 bits, at the cost that there are slightly more
String
copies than before. This PR is an attempt to see if this trade-off is worth it.The current status is that when things are fetched from cache, or if the inserting thing returns a borrowed
Cow<str>
such as for filenames, then we have the same number of copies as before. Function names are going to return an ownedCow<str>
, though, and in this case we have an extra copy compared to before. The benchmarks that the PR bot posts do not capture this case.Reviewer checklist