art049
monty
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
No performance history available yet
Once you have some commits, you will be able to see the performance history of your primary branch.
Latest Results
CLI run
by
art049
7 days ago
Add allocate_str_ref to avoid intermediate String in str(int) path When converting int to string via itoa, the result is a &str on the stack. Previously this was converted to String (heap allocation) then to Box<str> (another conversion). The new allocate_str_ref creates Box<str> directly from &str, avoiding the intermediate String. Also a minor improvement to list_append_str benchmark. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-Authored-By: CodSpeed <no-reply@codspeed.io>
perf/optimize-vm-and-heap-layout
7 days ago
Add allocate_str_ref to avoid intermediate String in str(int) path When converting int to string via itoa, the result is a &str on the stack. Previously this was converted to String (heap allocation) then to Box<str> (another conversion). The new allocate_str_ref creates Box<str> directly from &str, avoiding the intermediate String. Also a minor improvement to list_append_str benchmark. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-Authored-By: CodSpeed <no-reply@codspeed.io>
perf/optimize-vm-and-heap-layout
7 days ago
CLI run
by
art049
7 days ago
CLI run
by
art049
7 days ago
Avoid intermediate Vec allocation for small tuple construction build_tuple previously called pop_n() which drains the stack into a Vec via collect(), then converted to SmallVec. For tuples with ≤3 elements (which fit inline in SmallVec), this allocated and freed a Vec on every tuple creation. The new code pops elements directly into a SmallVec for counts 1-3, eliminating the Vec allocation entirely for the common case. Result: pair_tuples benchmark improved by ~10% (77ms → 70ms), empty_tuples by ~12% (27.9ms → 25ms). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-Authored-By: CodSpeed <no-reply@codspeed.io>
perf/optimize-vm-and-heap-layout
7 days ago
CLI run
by
art049
7 days ago
Box large HeapData variants to reduce heap entry size by 43% The three largest HeapData variants (ReMatch: 160B, Dataclass: 128B, GatherFuture: 104B) were inflating every heap entry to 184 bytes, even for common small types like Str, Tuple, and Int. Boxing these rarely- created variants reduces HeapData from 160 to 80 bytes and HeapValue from 184 to 104 bytes. This directly reduces memcpy cost when the heap Vec<Option<HeapValue>> grows, which dominates allocation-heavy benchmarks. Results: - pair_tuples: +27% (98.1ms → 77.0ms) - list_append_str: +12% (126.8ms → 112.7ms) - empty_tuples: +11% (31.1ms → 27.9ms) - list_comp: +10% (324.2µs → 293.8µs) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-Authored-By: CodSpeed <no-reply@codspeed.io>
perf/optimize-vm-and-heap-layout
7 days ago
Latest Branches
CodSpeed Performance Gauge
+49%
perf: mcp/skill testing
#1
7 days ago
a0c4faa
perf/optimize-vm-and-heap-layout
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs