Bashkit benchmark run

vm-linux-x86_64 · 4 CPUs · 2026-09-02 18:17 UTC · 9bebbe7 · 96 cases × 10 iterations (warmup 2)

Bashkit vs bash, average per case
20.7×
0.539 ms vs 11.174 ms
Geometric mean speedup
29.8×
median 36.0×
Errors
0 / 0
bashkit / bash
Output match
100%
bashkit output equals bash

Speedup by category

Geometric mean of per-case speedup (bash mean ÷ bashkit mean). Hover a bar for totals.

10×20×30×40×50×60×startup45.7×variables34.0×arithmetic30.2×control26.4×strings44.8×arrays38.5×pipes53.5×tools33.4×complex23.8×large6.1×subshell53.7×io29.3×

Runners

RunnerTotal (ms)Avg / case (ms)ErrorsOutput match
bashkit in-process51.730.5390100.0%
bash subprocess1,072.7111.1740100.0%

Extremes

Largest speedup
subshell_pipeline · 96.6× (0.050 ms vs 4.823 ms)
Smallest speedup
large_nested_loops · 1.2× (3.341 ms vs 3.951 ms)

All cases

Casebashkit mean (ms)bash mean (ms)SpeedupIterMatch
startup
startup_empty0.066 ±0.0262.250 ±0.13333.9×10
startup_true0.042 ±0.0022.188 ±0.12952.0×10
startup_echo0.045 ±0.0042.339 ±0.30152.5×10
startup_exit0.047 ±0.0102.212 ±0.17247.1×10
variables
var_assign_simple0.085 ±0.0302.403 ±0.21128.4×10
var_assign_many0.117 ±0.0122.267 ±0.17419.3×10
var_default0.073 ±0.0332.194 ±0.11330.1×10
var_length0.052 ±0.0062.425 ±0.20847.1×10
var_substring0.065 ±0.0212.290 ±0.17335.2×10
var_replace0.052 ±0.0032.298 ±0.10644.0×10
var_nested0.058 ±0.0102.325 ±0.18740.4×10
var_export0.061 ±0.0112.225 ±0.18736.6×10
arithmetic
arith_basic0.052 ±0.0112.336 ±0.11145.0×10
arith_complex0.070 ±0.0302.289 ±0.14432.6×10
arith_variables0.068 ±0.0202.261 ±0.13633.1×10
arith_increment0.065 ±0.0242.156 ±0.11033.1×10
arith_modulo0.085 ±0.0192.107 ±0.15024.7×10
arith_loop_sum0.118 ±0.0302.263 ±0.10919.2×10
control
ctrl_if_simple0.054 ±0.0102.280 ±0.12142.2×10
ctrl_if_else0.063 ±0.0132.233 ±0.16335.5×10
ctrl_for_list0.087 ±0.0192.464 ±0.24728.4×10
ctrl_for_range0.106 ±0.0282.496 ±0.32723.7×10
ctrl_while0.183 ±0.0212.934 ±1.22816.0×10
ctrl_case0.086 ±0.0092.257 ±0.18526.2×10
ctrl_function0.080 ±0.0282.308 ±0.23328.7×10
ctrl_function_return0.102 ±0.0202.940 ±0.31228.8×10
ctrl_nested_loops0.147 ±0.0432.591 ±0.27417.7×10
strings
str_concat0.050 ±0.0042.334 ±0.20547.1×10
str_printf0.051 ±0.0092.604 ±0.30251.1×10
str_printf_pad0.049 ±0.0072.521 ±0.36551.4×10
str_echo_escape0.063 ±0.0102.343 ±0.16937.1×10
str_prefix_strip0.063 ±0.0152.718 ±0.45043.4×10
str_suffix_strip0.090 ±0.0152.529 ±0.22228.2×10
str_uppercase0.050 ±0.0092.436 ±0.34948.6×10
str_lowercase0.049 ±0.0042.881 ±0.32759.0×10
arrays
arr_create0.078 ±0.0222.521 ±0.26032.1×10
arr_all0.068 ±0.0142.500 ±0.16037.0×10
arr_length0.058 ±0.0082.571 ±0.22844.4×10
arr_iterate0.085 ±0.0222.304 ±0.15127.0×10
arr_slice0.057 ±0.0042.575 ±0.34345.3×10
arr_assign_index0.057 ±0.0142.872 ±0.28150.1×10
pipes
pipe_simple0.107 ±0.0175.046 ±0.29547.3×10
pipe_multi0.118 ±0.0325.383 ±0.37745.5×10
pipe_command_subst0.064 ±0.0132.930 ±0.30945.5×10
pipe_heredoc0.070 ±0.0164.686 ±0.38166.9×10
pipe_herestring0.071 ±0.0225.205 ±0.99973.8×10
pipe_discard0.065 ±0.0153.161 ±0.33548.7×10
tools
tool_grep_simple0.090 ±0.0195.007 ±0.74055.7×10
tool_grep_case0.219 ±0.0294.758 ±0.19221.7×10
tool_grep_count0.068 ±0.0194.517 ±0.35666.8×10
tool_grep_invert0.064 ±0.0114.642 ±0.36972.5×10
tool_grep_regex0.088 ±0.0084.509 ±0.19951.2×10
tool_sed_replace0.197 ±0.0495.138 ±0.13626.1×10
tool_sed_global0.182 ±0.0574.929 ±0.40527.1×10
tool_sed_delete0.057 ±0.0114.627 ±0.16480.6×10
tool_sed_lines0.062 ±0.0194.843 ±0.28678.1×10
tool_sed_backrefs0.276 ±0.0565.223 ±0.49518.9×10
tool_awk_print0.054 ±0.0054.773 ±0.38288.9×10
tool_awk_sum0.067 ±0.0114.762 ±0.29771.3×10
tool_awk_pattern0.132 ±0.0524.537 ±0.26634.4×10
tool_awk_fieldsep0.057 ±0.0064.893 ±0.37086.3×10
tool_awk_nf0.093 ±0.0224.991 ±0.29253.5×10
tool_awk_compute0.080 ±0.0264.650 ±0.33758.1×10
tool_jq_identity0.710 ±0.0986.178 ±0.2908.7×10
tool_jq_field0.701 ±0.0556.457 ±0.4139.2×10
tool_jq_array0.743 ±0.1436.282 ±0.5088.5×10
tool_jq_filter0.739 ±0.0896.528 ±0.3378.8×10
tool_jq_map0.694 ±0.0817.752 ±1.14911.2×10
complex
complex_fibonacci5.761 ±0.381114.7 ±5.87319.9×10
complex_fibonacci_iter0.121 ±0.0152.321 ±0.16719.1×10
complex_nested_subst0.075 ±0.0186.771 ±6.92990.7×10
complex_loop_compute0.133 ±0.0272.399 ±0.19918.0×10
complex_string_build0.076 ±0.0272.308 ±0.10430.5×10
complex_json_transform0.725 ±0.0996.436 ±0.5698.9×10
complex_pipeline_text0.198 ±0.0395.067 ±0.45825.6×10
large
large_loop_10004.874 ±0.3685.897 ±0.6631.2×10
large_string_append_1000.401 ±0.0422.720 ±0.2276.8×10
large_array_fill_2001.752 ±0.1843.144 ±0.3761.8×10
large_nested_loops3.341 ±0.4543.951 ±0.4101.2×10
large_fibonacci_1215.6 ±1.114325.4 ±30.420.9×10
large_function_calls_5006.736 ±0.564297.4 ±42.644.1×10
large_multiline_script0.473 ±0.0422.776 ±0.1605.9×10
large_pipeline_chain1.216 ±0.1295.022 ±0.2444.1×10
large_assoc_array0.079 ±0.0522.221 ±0.12528.3×10
subshell
subshell_simple0.049 ±0.0053.192 ±0.13365.8×10
subshell_isolation0.077 ±0.0192.820 ±0.19536.5×10
subshell_nested0.113 ±0.0184.958 ±0.38043.8×10
subshell_pipeline0.050 ±0.0024.823 ±0.26196.6×10
subshell_capture_loop0.127 ±0.0294.853 ±0.68438.2×10
subshell_process_subst0.083 ±0.0185.149 ±3.96862.1×10
io
io_redirect_write0.105 ±0.0235.755 ±0.36055.0×10
io_append0.103 ±0.0145.551 ±0.40153.8×10
io_dev_null0.088 ±0.0212.254 ±0.22325.5×10
io_stderr_redirect0.083 ±0.0182.297 ±0.18827.7×10
io_read_lines0.311 ±0.2122.512 ±0.2018.1×10
io_multiline_heredoc0.122 ±0.0144.584 ±0.32837.4×10

System

Hostname
vm
OS / arch
linux / x86_64
CPUs
4
Runners
bashkit, bash
Prewarm cases
3
Source file
crates/bashkit-bench/results/bench-vm-linux-x86_64-1788373049.json