Avatar for the KittyCAD user
KittyCAD
modeling-app
Instrumentation
Wall Time
BlogDocsChangelog

KCL: Preallocate space for all the paths

#7843
Comparing
achalmers/mockexec
(
2ad3436
) with
main
(
399dbaf
)
CodSpeed Performance Gauge
-14%
Improvements
0
Regressions
1
Untouched
88
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

mock_execute_mike_stress_test_programRegression
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_mock_warmed_up::mock_execute_mike_stress_test_program
CodSpeed Performance Gauge
-14%
289.5 ms
334.7 ms

Passed

mock_execute_medium_sketch
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_mock_warmed_up::mock_execute_medium_sketch
CodSpeed Performance Gauge
0%
9.8 ms
9.8 ms
parse_multi-axis-robot
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::multi-axis-robot::parse_multi-axis-robot
CodSpeed Performance Gauge
0%
502.2 µs
500.1 µs
parse_cube
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_cube
CodSpeed Performance Gauge
0%
10.2 ms
10.2 ms
parse_big_kitt
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_big_kitt
CodSpeed Performance Gauge
0%
253.1 ms
252.7 ms
parse_pipes_on_pipes
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_pipes_on_pipes
CodSpeed Performance Gauge
0%
848 ms
846.8 ms
parse_koch snowflake
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_koch snowflake
CodSpeed Performance Gauge
0%
535.2 ms
534.6 ms
parse_car-wheel-assembly
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::car-wheel-assembly::parse_car-wheel-assembly
CodSpeed Performance Gauge
0%
3.1 ms
3.1 ms
parse_mike_stress_test
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_mike_stress_test
CodSpeed Performance Gauge
0%
955.9 ms
955.4 ms
parse_food-service-spatula
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::food-service-spatula::parse_food-service-spatula
CodSpeed Performance Gauge
0%
810.1 ms
809.7 ms
parse_pillow-block-bearing
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::pillow-block-bearing::parse_pillow-block-bearing
CodSpeed Performance Gauge
0%
329.6 µs
329.5 µs
parse_pipe-flange-assembly
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::pipe-flange-assembly::parse_pipe-flange-assembly
CodSpeed Performance Gauge
0%
13 ms
13 ms
parse_lego
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::lego::parse_lego
CodSpeed Performance Gauge
0%
32.4 ms
32.4 ms
parse_clock
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::clock::parse_clock
CodSpeed Performance Gauge
0%
1.7 s
1.7 s
parse_axial-fan
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::axial-fan::parse_axial-fan
CodSpeed Performance Gauge
0%
421.2 µs
421.1 µs
digest_cube
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_cube
CodSpeed Performance Gauge
0%
422.7 µs
422.7 µs
parse_gear-rack
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::gear-rack::parse_gear-rack
CodSpeed Performance Gauge
0%
23.3 ms
23.3 ms
parse_cpu-cooler
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::cpu-cooler::parse_cpu-cooler
CodSpeed Performance Gauge
0%
9.3 ms
9.3 ms
digest_lsystem
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_lsystem
CodSpeed Performance Gauge
0%
2.2 ms
2.2 ms
parse_bone-plate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::bone-plate::parse_bone-plate
CodSpeed Performance Gauge
0%
46.3 ms
46.3 ms
parse_focusrite-scarlett-mounting-bracket
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::focusrite-scarlett-mounting-bracket::parse_focusrite-scarlett-mounting-bracket
CodSpeed Performance Gauge
0%
107 ms
107 ms
digest_pipes_on_pipes
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_pipes_on_pipes
CodSpeed Performance Gauge
0%
19.5 ms
19.5 ms
digest_big_kitt
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_big_kitt
CodSpeed Performance Gauge
0%
6.5 ms
6.5 ms
digest_mike_stress_test
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_mike_stress_test
CodSpeed Performance Gauge
0%
20.8 ms
20.8 ms
digest_math
rust/kcl-lib/benches/digest_benchmark.rs::benches::bench_digest::digest_math
CodSpeed Performance Gauge
0%
1.2 ms
1.2 ms
parse_dodecahedron
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::dodecahedron::parse_dodecahedron
CodSpeed Performance Gauge
0%
85.9 ms
85.9 ms
parse_poopy-shoe
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::poopy-shoe::parse_poopy-shoe
CodSpeed Performance Gauge
0%
87.2 ms
87.2 ms
parse_walkie-talkie
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::walkie-talkie::parse_walkie-talkie
CodSpeed Performance Gauge
0%
5.2 ms
5.2 ms
parse_i-beam
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::i-beam::parse_i-beam
CodSpeed Performance Gauge
0%
4 ms
4 ms
parse_hex-nut
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::hex-nut::parse_hex-nut
CodSpeed Performance Gauge
0%
19.4 ms
19.4 ms
parse_ball-bearing
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::ball-bearing::parse_ball-bearing
CodSpeed Performance Gauge
0%
37.5 ms
37.5 ms
parse_flange
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::flange::parse_flange
CodSpeed Performance Gauge
0%
11.3 ms
11.3 ms
parse_french-press
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::french-press::parse_french-press
CodSpeed Performance Gauge
0%
119.7 ms
119.7 ms
parse_spool
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::spool::parse_spool
CodSpeed Performance Gauge
0%
23.2 ms
23.2 ms
parse_bottle
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::bottle::parse_bottle
CodSpeed Performance Gauge
0%
8.6 ms
8.6 ms
parse_teapot
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::teapot::parse_teapot
CodSpeed Performance Gauge
0%
45.6 ms
45.6 ms
parse_washer
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::washer::parse_washer
CodSpeed Performance Gauge
0%
6.4 ms
6.4 ms
parse_exhaust-manifold
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::exhaust-manifold::parse_exhaust-manifold
CodSpeed Performance Gauge
0%
117.9 ms
117.9 ms
parse_wing-spar
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::wing-spar::parse_wing-spar
CodSpeed Performance Gauge
0%
87.9 ms
88 ms
parse_t-slot-rail
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::t-slot-rail::parse_t-slot-rail
CodSpeed Performance Gauge
0%
29.2 ms
29.2 ms
parse_countersunk-plate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::countersunk-plate::parse_countersunk-plate
CodSpeed Performance Gauge
0%
19.7 ms
19.7 ms
parse_pdu-faceplate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::pdu-faceplate::parse_pdu-faceplate
CodSpeed Performance Gauge
0%
85.9 ms
85.9 ms
parse_spur-reduction-gearset
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::spur-reduction-gearset::parse_spur-reduction-gearset
CodSpeed Performance Gauge
0%
16.3 ms
16.3 ms
parse_mug
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::mug::parse_mug
CodSpeed Performance Gauge
0%
27.4 ms
27.4 ms
parse_counterdrilled-weldment
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::counterdrilled-weldment::parse_counterdrilled-weldment
CodSpeed Performance Gauge
0%
88.7 ms
88.7 ms
parse_enclosure
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::enclosure::parse_enclosure
CodSpeed Performance Gauge
0%
199.5 ms
199.6 ms
parse_spinning-highrise-tower
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::spinning-highrise-tower::parse_spinning-highrise-tower
CodSpeed Performance Gauge
0%
50.2 ms
50.2 ms
parse_helium-tank
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::helium-tank::parse_helium-tank
CodSpeed Performance Gauge
0%
192.1 ms
192.2 ms
parse_keyboard
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::keyboard::parse_keyboard
CodSpeed Performance Gauge
0%
233 ms
233.1 ms
parse_telemetry-antenna
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::telemetry-antenna::parse_telemetry-antenna
CodSpeed Performance Gauge
0%
54.2 ms
54.2 ms
parse_pipe
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::pipe::parse_pipe
CodSpeed Performance Gauge
0%
3.8 ms
3.8 ms
parse_cycloidal-gear
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::cycloidal-gear::parse_cycloidal-gear
CodSpeed Performance Gauge
0%
73.4 ms
73.4 ms
parse_gridfinity-bins-stacking-lip
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::gridfinity-bins-stacking-lip::parse_gridfinity-bins-stacking-lip
CodSpeed Performance Gauge
0%
337.5 ms
337.6 ms
parse_sash-window
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::sash-window::parse_sash-window
CodSpeed Performance Gauge
0%
87.2 ms
87.3 ms
parse_router-template-slate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::router-template-slate::parse_router-template-slate
CodSpeed Performance Gauge
0%
34.4 ms
34.4 ms
parse_thermal-block-insert
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::thermal-block-insert::parse_thermal-block-insert
CodSpeed Performance Gauge
0%
17.9 ms
17.9 ms
parse_router-template-cross-bar
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::router-template-cross-bar::parse_router-template-cross-bar
CodSpeed Performance Gauge
0%
48.7 ms
48.7 ms
parse_bench
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::bench::parse_bench
CodSpeed Performance Gauge
0%
52.1 ms
52.1 ms
parse_spur-gear
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::spur-gear::parse_spur-gear
CodSpeed Performance Gauge
0%
18 ms
18 ms
parse_truss-structure
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::truss-structure::parse_truss-structure
CodSpeed Performance Gauge
0%
78.4 ms
78.4 ms
parse_sheet-metal-bracket
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::sheet-metal-bracket::parse_sheet-metal-bracket
CodSpeed Performance Gauge
0%
35.2 ms
35.2 ms
parse_cold-plate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::cold-plate::parse_cold-plate
CodSpeed Performance Gauge
0%
40.1 ms
40.1 ms
parse_utility-sink
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::utility-sink::parse_utility-sink
CodSpeed Performance Gauge
0%
200.4 ms
200.5 ms
parse_math
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::bench_parse::parse_math
CodSpeed Performance Gauge
0%
34.1 ms
34.1 ms
parse_kitt
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::kitt::parse_kitt
CodSpeed Performance Gauge
0%
159 ms
159.1 ms
parse_prosthetic-hip
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::prosthetic-hip::parse_prosthetic-hip
CodSpeed Performance Gauge
0%
146.9 ms
147 ms
parse_makeup-mirror
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::makeup-mirror::parse_makeup-mirror
CodSpeed Performance Gauge
0%
50.1 ms
50.1 ms
parse_gridfinity-bins
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::gridfinity-bins::parse_gridfinity-bins
CodSpeed Performance Gauge
0%
221.1 ms
221.3 ms
parse_engine-valve
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::engine-valve::parse_engine-valve
CodSpeed Performance Gauge
0%
69.1 ms
69.1 ms
parse_color-cube
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::color-cube::parse_color-cube
CodSpeed Performance Gauge
0%
24.1 ms
24.1 ms
parse_herringbone-gear
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::herringbone-gear::parse_herringbone-gear
CodSpeed Performance Gauge
0%
36.1 ms
36.1 ms
parse_herringbone-planetary-gearset
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::herringbone-planetary-gearset::parse_herringbone-planetary-gearset
CodSpeed Performance Gauge
0%
76.7 ms
76.8 ms
parse_curtain-wall-anchor-plate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::curtain-wall-anchor-plate::parse_curtain-wall-anchor-plate
CodSpeed Performance Gauge
0%
171.1 ms
171.3 ms
parse_socket-head-cap-screw
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::socket-head-cap-screw::parse_socket-head-cap-screw
CodSpeed Performance Gauge
0%
14.8 ms
14.8 ms
parse_ball-joint-rod-end
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::ball-joint-rod-end::parse_ball-joint-rod-end
CodSpeed Performance Gauge
0%
170 ms
170.1 ms
parse_shepherds-hook-bolt
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::shepherds-hook-bolt::parse_shepherds-hook-bolt
CodSpeed Performance Gauge
0%
77.6 ms
77.6 ms
parse_pipe-with-bend
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::pipe-with-bend::parse_pipe-with-bend
CodSpeed Performance Gauge
0%
10.9 ms
10.9 ms
parse_brake-rotor
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::brake-rotor::parse_brake-rotor
CodSpeed Performance Gauge
0%
157.6 ms
157.7 ms
parse_helical-planetary-gearset
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::helical-planetary-gearset::parse_helical-planetary-gearset
CodSpeed Performance Gauge
0%
79.9 ms
80 ms
parse_surgical-drill-guide
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::surgical-drill-guide::parse_surgical-drill-guide
CodSpeed Performance Gauge
0%
293.1 ms
293.3 ms
parse_tooling-nest-block
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::tooling-nest-block::parse_tooling-nest-block
CodSpeed Performance Gauge
0%
77.6 ms
77.7 ms
parse_mounting-plate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::mounting-plate::parse_mounting-plate
CodSpeed Performance Gauge
0%
126.7 ms
126.8 ms
parse_helical-gear
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::helical-gear::parse_helical-gear
CodSpeed Performance Gauge
0%
39.2 ms
39.2 ms
parse_gridfinity-baseplate
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::gridfinity-baseplate::parse_gridfinity-baseplate
CodSpeed Performance Gauge
0%
168 ms
168.1 ms
parse_bracket
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::bracket::parse_bracket
CodSpeed Performance Gauge
0%
76.2 ms
76.3 ms
parse_gridfinity-baseplate-magnets
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::gridfinity-baseplate-magnets::parse_gridfinity-baseplate-magnets
CodSpeed Performance Gauge
0%
298.3 ms
298.6 ms
parse_hammer
rust/kcl-lib/benches/benchmark_kcl_samples.rs::benches::run_benchmarks::hammer::parse_hammer
CodSpeed Performance Gauge
0%
7.4 s
7.4 s
recast_medium_sketch
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::recast::recast_medium_sketch
CodSpeed Performance Gauge
0%
688.1 µs
689.3 µs
recast_mike_stress_test_program
rust/kcl-lib/benches/compiler_benchmark_criterion.rs::benches::recast::recast_mike_stress_test_program
CodSpeed Performance Gauge
0%
12.6 ms
12.6 ms

Commits

Click on a commit to change the comparison range
Base
main
399dbaf
-14%
KCL: Preallocate space for all the paths If you sketch a 100-sided shape, Rust will append 100 path segments to the underlying sketch. Unfortunately because the vector which stores the paths starts at capacity 0, this could cause quite a lot of allocations. As an optimization, we will instead preallocate space for N paths, where N is the number of steps in the |> pipeline. This will hopefully reduce allocations.
2ad3436
25 days ago
by adamchalmers
© 2025 CodSpeed Technology
Home Terms Privacy Docs