Divan Benchmark Overview
Bars show Divan median times converted to ns/op. Lower is better.
The final benchmark path segment is treated as the comparison legend.
count_ones
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 / alternating | bit_string | 15.580000 | 1.000x | 100 | 12800 |
| len_4096 / alternating | bitvec_simd | 21.600000 | 1.386x | 100 | 12800 |
| len_4096 / dense | bit_string | 15.580000 | 1.000x | 100 | 12800 |
| len_4096 / dense | bitvec_simd | 21.520000 | 1.381x | 100 | 12800 |
| len_4096 / sparse | bit_string | 15.650000 | 1.000x | 100 | 12800 |
| len_4096 / sparse | bitvec_simd | 21.530000 | 1.376x | 100 | 12800 |
| len_65 / alternating | bit_string | 1.696000 | 1.000x | 100 | 102400 |
| len_65 / alternating | bitvec_simd | 1.892000 | 1.116x | 100 | 102400 |
| len_65 / dense | bit_string | 1.706000 | 1.000x | 100 | 102400 |
| len_65 / dense | bitvec_simd | 1.892000 | 1.109x | 100 | 102400 |
| len_65 / sparse | bit_string | 1.706000 | 1.000x | 100 | 102400 |
| len_65 / sparse | bitvec_simd | 1.901000 | 1.114x | 100 | 102400 |
| len_65536 / alternating | bit_string | 187.200000 | 1.000x | 100 | 1600 |
| len_65536 / alternating | bitvec_simd | 326.500000 | 1.744x | 100 | 800 |
| len_65536 / dense | bit_string | 186.900000 | 1.000x | 100 | 1600 |
| len_65536 / dense | bitvec_simd | 326.500000 | 1.747x | 100 | 800 |
| len_65536 / sparse | bit_string | 186.900000 | 1.000x | 100 | 1600 |
| len_65536 / sparse | bitvec_simd | 325.300000 | 1.741x | 100 | 800 |
ends_with
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 / hit | string | 3.095000 | 1.000x | 100 | 102400 |
| len_65 / hit | bit_string | 10.490000 | 3.389x | 100 | 25600 |
| len_65 / miss | string | 3.104000 | 1.000x | 100 | 102400 |
| len_65 / miss | bit_string | 3.114000 | 1.003x | 100 | 102400 |
| len_65536 / hit | string | 109.500000 | 1.000x | 100 | 3200 |
| len_65536 / hit | bit_string | 8365.000000 | 76.393x | 100 | 100 |
| len_65536 / miss | string | 3.095000 | 1.000x | 100 | 102400 |
| len_65536 / miss | bit_string | 3.105000 | 1.003x | 100 | 102400 |
find
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 / end | bit_string | 81.720000 | 1.000x | 100 | 3200 |
| len_65 / end | string | 102.000000 | 1.248x | 100 | 3200 |
| len_65 / front | bit_string | 11.510000 | 1.000x | 100 | 25600 |
| len_65 / front | string | 31.780000 | 2.761x | 100 | 6400 |
| len_65 / middle | bit_string | 46.340000 | 1.000x | 100 | 6400 |
| len_65 / middle | string | 66.370000 | 1.432x | 100 | 3200 |
| len_65 / miss | string | 33.040000 | 1.000x | 100 | 6400 |
| len_65 / miss | bit_string | 74.840000 | 2.265x | 100 | 3200 |
| len_65536 / end | string | 68040.000000 | 1.000x | 100 | 100 |
| len_65536 / end | bit_string | 79960.000000 | 1.175x | 100 | 100 |
| len_65536 / front | bit_string | 8876.000000 | 1.000x | 100 | 100 |
| len_65536 / front | string | 28850.000000 | 3.250x | 100 | 100 |
| len_65536 / middle | bit_string | 44770.000000 | 1.000x | 100 | 100 |
| len_65536 / middle | string | 49350.000000 | 1.102x | 100 | 100 |
| len_65536 / miss | string | 15210.000000 | 1.000x | 100 | 100 |
| len_65536 / miss | bit_string | 71560.000000 | 4.705x | 100 | 100 |
from_bool_iter
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 | bit_string | 138.000000 | 1.000x | 100 | 1600 |
| len_4096 | bitvec_simd | 4998.000000 | 36.217x | 100 | 100 |
| len_65 | bit_string | 40.230000 | 1.000x | 100 | 6400 |
| len_65 | bitvec_simd | 72.000000 | 1.790x | 100 | 3200 |
| len_65536 | bit_string | 2284.000000 | 1.000x | 100 | 100 |
| len_65536 | bitvec_simd | 246200.000000 | 107.793x | 100 | 100 |
from_str
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 | bit_string | 93.280000 | 1.000x | 100 | 1600 |
| len_65 | bit_string | 23.790000 | 1.000x | 100 | 6400 |
| len_65536 | bit_string | 1171.000000 | 1.000x | 100 | 200 |
insert_middle
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 | bit_string | 42.730000 | 1.000x | 100 | 6400 |
| len_65 | string | 44.620000 | 1.044x | 100 | 6400 |
| len_65536 | bit_string | 2734.000000 | 1.000x | 100 | 100 |
| len_65536 | string | 22420.000000 | 8.200x | 100 | 100 |
not
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 / alternating | bit_string | 21.920000 | 1.000x | 100 | 6400 |
| len_4096 / alternating | bitvec_simd | 67.620000 | 3.085x | 100 | 3200 |
| len_4096 / dense | bit_string | 21.050000 | 1.000x | 100 | 12800 |
| len_4096 / dense | bitvec_simd | 72.620000 | 3.450x | 100 | 3200 |
| len_4096 / sparse | bit_string | 20.970000 | 1.000x | 100 | 12800 |
| len_4096 / sparse | bitvec_simd | 64.810000 | 3.091x | 100 | 3200 |
| len_65 / alternating | bit_string | 18.310000 | 1.000x | 100 | 12800 |
| len_65 / alternating | bitvec_simd | 32.720000 | 1.787x | 100 | 6400 |
| len_65 / dense | bit_string | 17.610000 | 1.000x | 100 | 12800 |
| len_65 / dense | bitvec_simd | 31.940000 | 1.814x | 100 | 6400 |
| len_65 / sparse | bit_string | 17.610000 | 1.000x | 100 | 12800 |
| len_65 / sparse | bitvec_simd | 31.940000 | 1.814x | 100 | 6400 |
| len_65536 / alternating | bit_string | 150.200000 | 1.000x | 100 | 1600 |
| len_65536 / alternating | bitvec_simd | 210.600000 | 1.402x | 100 | 1600 |
| len_65536 / dense | bit_string | 150.000000 | 1.000x | 100 | 1600 |
| len_65536 / dense | bitvec_simd | 210.700000 | 1.405x | 100 | 1600 |
| len_65536 / sparse | bit_string | 149.300000 | 1.000x | 100 | 1600 |
| len_65536 / sparse | bitvec_simd | 210.600000 | 1.411x | 100 | 1600 |
push
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 | bit_string | 21.990000 | 1.000x | 100 | 6400 |
| len_65 | string | 51.310000 | 2.333x | 100 | 1600 |
| len_65536 | bit_string | 450.100000 | 1.000x | 100 | 100 |
| len_65536 | string | 21420.000000 | 47.589x | 100 | 100 |
push_bit_string
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 | bit_string | 42.260000 | 1.000x | 100 | 6400 |
| len_65 | string | 47.890000 | 1.133x | 100 | 3200 |
| len_65536 | bit_string | 2519.000000 | 1.000x | 100 | 100 |
| len_65536 | string | 22260.000000 | 8.837x | 100 | 100 |
remove_middle
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 | string | 26.290000 | 1.000x | 100 | 6400 |
| len_65 | bit_string | 38.980000 | 1.483x | 100 | 6400 |
| len_65536 | bit_string | 2524.000000 | 1.000x | 100 | 100 |
| len_65536 | string | 23230.000000 | 9.204x | 100 | 100 |
replace_interval
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 / longer | bit_string | 47.750000 | 1.000x | 100 | 6400 |
| len_65 / longer | string | 78.280000 | 1.639x | 100 | 3200 |
| len_65 / same_len | string | 37.650000 | 1.000x | 100 | 6400 |
| len_65 / same_len | bit_string | 48.210000 | 1.280x | 100 | 6400 |
| len_65 / shorter | string | 36.000000 | 1.000x | 100 | 6400 |
| len_65 / shorter | bit_string | 46.650000 | 1.296x | 100 | 6400 |
| len_65536 / longer | bit_string | 3165.000000 | 1.000x | 100 | 100 |
| len_65536 / longer | string | 28830.000000 | 9.109x | 100 | 100 |
| len_65536 / same_len | bit_string | 3325.000000 | 1.000x | 100 | 100 |
| len_65536 / same_len | string | 14900.000000 | 4.481x | 100 | 100 |
| len_65536 / shorter | bit_string | 2704.000000 | 1.000x | 100 | 100 |
| len_65536 / shorter | string | 29840.000000 | 11.036x | 100 | 100 |
shl
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 / amount_1 | bit_string | 32.320000 | 1.000x | 100 | 6400 |
| len_4096 / amount_65 | bit_string | 31.620000 | 1.000x | 100 | 6400 |
| len_65 / amount_1 | bit_string | 22.080000 | 1.000x | 100 | 6400 |
| len_65536 / amount_1 | bit_string | 214.500000 | 1.000x | 100 | 1600 |
| len_65536 / amount_65 | bit_string | 226.300000 | 1.000x | 100 | 400 |
slice
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 | string | 21.830000 | 1.000x | 100 | 12800 |
| len_65 | bit_string | 22.540000 | 1.033x | 100 | 6400 |
| len_65536 | string | 150.100000 | 1.000x | 100 | 200 |
| len_65536 | bit_string | 349.000000 | 2.325x | 100 | 800 |
strip_prefix
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_65 / hit | string | 22.300000 | 1.000x | 100 | 12800 |
| len_65 / hit | bit_string | 30.830000 | 1.383x | 100 | 6400 |
| len_65 / miss | string | 4.054000 | 1.000x | 100 | 51200 |
| len_65 / miss | bit_string | 7.165000 | 1.767x | 100 | 51200 |
| len_65536 / hit | string | 1481.000000 | 1.000x | 100 | 100 |
| len_65536 / hit | bit_string | 7022.000000 | 4.741x | 100 | 100 |
| len_65536 / miss | string | 3.496000 | 1.000x | 100 | 102400 |
| len_65536 / miss | bit_string | 7.165000 | 2.049x | 100 | 51200 |
xor
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 / alternating | bit_string | 23.480000 | 1.000x | 100 | 12800 |
| len_4096 / alternating | bitvec_simd | 80.150000 | 3.414x | 100 | 3200 |
| len_4096 / dense | bit_string | 23.010000 | 1.000x | 100 | 12800 |
| len_4096 / dense | bitvec_simd | 79.840000 | 3.470x | 100 | 3200 |
| len_4096 / sparse | bit_string | 23.010000 | 1.000x | 100 | 6400 |
| len_4096 / sparse | bitvec_simd | 74.870000 | 3.254x | 100 | 1600 |
| len_65 / alternating | bit_string | 17.690000 | 1.000x | 100 | 12800 |
| len_65 / alternating | bitvec_simd | 19.790000 | 1.119x | 100 | 12800 |
| len_65 / dense | bit_string | 17.220000 | 1.000x | 100 | 12800 |
| len_65 / dense | bitvec_simd | 19.720000 | 1.145x | 100 | 12800 |
| len_65 / sparse | bit_string | 17.140000 | 1.000x | 100 | 12800 |
| len_65 / sparse | bitvec_simd | 19.800000 | 1.155x | 100 | 12800 |
| len_65536 / alternating | bit_string | 217.000000 | 1.000x | 100 | 800 |
| len_65536 / alternating | bitvec_simd | 248.900000 | 1.147x | 100 | 800 |
| len_65536 / dense | bit_string | 218.800000 | 1.000x | 100 | 1600 |
| len_65536 / dense | bitvec_simd | 252.600000 | 1.154x | 100 | 800 |
| len_65536 / sparse | bit_string | 233.200000 | 1.000x | 100 | 1600 |
| len_65536 / sparse | bitvec_simd | 251.400000 | 1.078x | 100 | 800 |
zeros
Median table
| case | legend | median ns/op | relative | samples | iters |
|---|
| len_4096 | bit_string | 22.150000 | 1.000x | 100 | 12800 |
| len_4096 | bitvec_simd | 62.310000 | 2.813x | 100 | 3200 |
| len_65 | bitvec_simd | 18.150000 | 1.000x | 100 | 12800 |
| len_65 | bit_string | 18.320000 | 1.009x | 100 | 12800 |
| len_65536 | bit_string | 130.500000 | 1.000x | 100 | 1600 |
| len_65536 | bitvec_simd | 156.200000 | 1.197x | 100 | 1600 |