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.

cmp

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / diff_firststring4.0520001.000x10051200
len_4096 / diff_firstours_string8.9620002.212x10025600
len_4096 / diff_firstbit_str_unaligned10.4800002.586x10025600
len_4096 / diff_lastours_string20.1500001.000x10012800
len_4096 / diff_lastbit_str_unaligned22.3300001.108x10012800
len_4096 / diff_laststring71.4700003.547x1003200
len_4096 / identicalours_string19.3600001.000x10012800
len_4096 / identicalbit_str_unaligned20.2200001.044x10012800
len_4096 / identicalstring80.7100004.169x1003200
len_64 / diff_firststring5.5360001.000x10051200
len_64 / diff_firstours_string6.3000001.138x10051200
len_64 / diff_firstbit_str_unaligned7.2590001.311x10051200
len_64 / diff_laststring6.0460001.000x10051200
len_64 / diff_lastours_string6.2220001.029x10051200
len_64 / diff_lastbit_str_unaligned7.2780001.204x10051200
len_64 / identicalstring4.7160001.000x10051200
len_64 / identicalours_string5.8510001.241x10051200
len_64 / identicalbit_str_unaligned7.2960001.547x10051200
len_65 / diff_lastours_string7.7080001.000x10025600
len_65 / diff_lastbit_str_unaligned10.7900001.400x10025600
len_65 / identicalours_string7.0830001.000x10051200
len_65 / identicalbit_str_unaligned10.0100001.413x10025600
len_65536 / diff_firststring4.0320001.000x10051200
len_65536 / diff_firstbit_str_unaligned10.5300002.612x10012800
len_65536 / diff_firstours_string14.3600003.562x10012800
len_65536 / diff_lastours_string361.4000001.000x100800
len_65536 / diff_lastbit_str_unaligned379.5000001.050x100800
len_65536 / diff_laststring1491.0000004.126x100100
len_65536 / identicalours_string356.4000001.000x100800
len_65536 / identicalbit_str_unaligned372.0000001.044x100800
len_65536 / identicalstring1472.0000004.130x100200

contains_str

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / nostring42.3800001.000x1006400
len_65 / noours_string_str131.7000003.108x1001600
len_65 / noours_string_string209.6000004.946x1001600
len_65 / yesours_string_str20.8500001.000x10012800
len_65 / yesours_string_string21.2400001.019x10012800
len_65 / yesstring40.6500001.950x1006400
len_65536 / noours_string_str19610.0000001.000x100100
len_65536 / noours_string_string20370.0000001.039x100100
len_65536 / nostring26290.0000001.341x100100
len_65536 / yesours_string_str33.7500001.000x1006400
len_65536 / yesours_string_string35.0000001.037x1006400
len_65536 / yesstring33660.000000997.333x100100

count_ones

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / all_zeros / leadingours_string1.0040001.000x100204800
len_4096 / all_zeros / leadingours_str1.4400001.434x100102400
len_4096 / all_zeros / trailingours_string1.3130001.000x100102400
len_4096 / all_zeros / trailingours_str2.4660001.878x10051200
len_4096 / alternatingours_string14.2000001.000x10012800
len_4096 / alternatingbitvec_simd22.7300001.601x10012800
len_4096 / densebitvec_simd22.6500001.000x10012800
len_4096 / denseours_string23.1100001.020x10012800
len_4096 / sparseours_string14.2000001.000x10012800
len_4096 / sparsebitvec_simd22.8000001.606x10012800
len_65 / all_zeros / leadingours_string1.0280001.000x100204800
len_65 / all_zeros / leadingours_str1.4340001.395x100204800
len_65 / all_zeros / trailingours_string1.7430001.000x10051200
len_65 / all_zeros / trailingours_str2.1530001.235x10051200
len_65 / alternatingbitvec_simd1.7720001.000x100102400
len_65 / alternatingours_string1.9090001.077x100102400
len_65 / densebitvec_simd1.7720001.000x100102400
len_65 / denseours_string1.9180001.082x100102400
len_65 / dense / trailingours_string1.9780001.000x10051200
len_65 / dense / trailingours_str2.5830001.306x10025600
len_65 / sparsebitvec_simd1.7720001.000x100102400
len_65 / sparseours_string1.9860001.121x100102400
len_65536 / alternatingours_string206.2000001.000x100800
len_65536 / alternatingbitvec_simd347.6000001.686x100800
len_65536 / denseours_string206.2000001.000x100800
len_65536 / densebitvec_simd347.6000001.686x100800
len_65536 / sparseours_string206.2000001.000x100800
len_65536 / sparsebitvec_simd347.6000001.686x100800

count_zeros

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / all_zeros / leadingours_string7.0440001.000x10025600
len_4096 / all_zeros / leadingours_str8.4150001.195x10012800
len_4096 / all_zeros / trailingours_string7.7860001.000x10025600
len_4096 / all_zeros / trailingours_str9.9000001.272x10012800
len_4096 / all_zeros / trailing_unaligned_3ours_str13.8400001.000x10012800
len_4096 / all_zeros / trailing_unaligned_63ours_str14.3600001.000x10012800
len_4096 / dense / trailingours_string1.2340001.000x100102400
len_4096 / dense / trailingours_str2.6630002.158x10051200
len_65 / all_zeros / leadingours_string1.2740001.000x100102400
len_65 / all_zeros / leadingours_str4.1890003.288x10012800
len_65 / all_zeros / trailingours_string1.5660001.000x100102400
len_65 / all_zeros / trailingours_str2.7590001.762x10051200
len_65 / alternating / trailingours_string1.7820001.000x10051200
len_65 / alternating / trailingours_str3.0130001.691x10025600
len_65 / dense / leadingours_string0.9260001.000x100204800
len_65 / dense / leadingours_str1.3910001.502x100102400
len_65 / dense / trailingours_string1.6630001.000x10051200
len_65 / dense / trailingours_str2.7780001.670x10025600
len_65536 / all_zeros / leadingours_string59.7700001.000x1001600
len_65536 / all_zeros / leadingours_str59.9000001.002x1006400
len_65536 / all_zeros / trailingours_string81.0200001.000x1001600
len_65536 / all_zeros / trailingours_str82.9000001.023x1003200
len_65536 / dense / trailingours_string1.2190001.000x100204800
len_65536 / dense / trailingours_str2.6030002.135x100102400

ends_with

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / hitstring3.1600001.000x100102400
len_65 / hitours_string_str5.0280001.591x10051200
len_65 / hitours_string_string5.0670001.603x10051200
len_65 / hitours_str_string5.3210001.684x10051200
len_65 / hitours_str_str5.5950001.771x10051200
len_65 / missstring3.2390001.000x100102400
len_65 / missours_string_str5.0480001.559x10051200
len_65 / missours_string_string5.0670001.564x10051200
len_65 / missours_str_string5.2630001.625x10051200
len_65 / missours_str_str5.6160001.734x10051200
len_65536 / hitstring3.8160001.000x10051200
len_65536 / hitours_string_str5.3230001.395x10051200
len_65536 / hitours_string_string5.3410001.400x10051200
len_65536 / hitours_str_string5.4210001.421x10051200
len_65536 / hitours_str_str5.4800001.436x10051200
len_65536 / missstring4.5770001.000x10051200
len_65536 / missours_string_string5.0670001.107x10051200
len_65536 / missours_string_str5.1850001.133x10051200
len_65536 / missours_str_str5.3800001.175x10051200
len_65536 / missours_str_string5.4000001.180x10051200

find_str

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / endours_string_string100.7000001.000x1003200
len_65 / endours_string_str104.0000001.033x1003200
len_65 / endstring215.9000002.144x1001600
len_65 / frontours_string_str16.6300001.000x10012800
len_65 / frontours_string_string17.1800001.033x10012800
len_65 / frontstring34.7000002.087x1006400
len_65 / middleours_string_string38.2200001.000x1006400
len_65 / middleours_string_str38.2900001.002x1006400
len_65 / middlestring83.5200002.185x1003200
len_65 / missstring38.6100001.000x1006400
len_65 / missours_string_str74.1500001.920x1003200
len_65 / missours_string_string100.5000002.603x1003200
len_65536 / endours_string_string20990.0000001.000x100100
len_65536 / endours_string_str24180.0000001.152x100100
len_65536 / endstring81440.0000003.880x100100
len_65536 / frontours_string_str34.5400001.000x1006400
len_65536 / frontours_string_string49.7200001.439x1003200
len_65536 / frontstring33580.000000972.206x100100
len_65536 / middleours_string_string10530.0000001.000x100100
len_65536 / middleours_string_str12290.0000001.167x100100
len_65536 / middlestring59280.0000005.630x100100
len_65536 / missours_string_string20950.0000001.000x100100
len_65536 / missours_string_str24540.0000001.171x100100
len_65536 / missstring26370.0000001.259x100100

from_bool_iter

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096ours_string168.6000001.000x100800
len_4096bitvec_simd5563.00000032.995x100100
len_65ours_string29.9900001.000x1003200
len_65bitvec_simd96.9900003.234x1003200
len_65536ours_string2533.0000001.000x100100
len_65536bitvec_simd189700.00000074.891x100100

from_str

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096ours_string102.9000001.000x1001600
len_65ours_string28.2900001.000x1006400
len_65536ours_string1356.0000001.000x100200

hash

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / alternatingours_string193.0000001.000x1001600
len_4096 / alternatingours_str525.4000002.722x100400
len_4096 / alternatingstring1406.0000007.285x100200
len_4096 / alternatingstr1411.0000007.311x100200
len_4096 / denseours_string192.4000001.000x1001600
len_4096 / denseours_str508.5000002.643x100800
len_4096 / densestr1406.0000007.308x100200
len_4096 / densestring1421.0000007.386x100200
len_4096 / sparseours_string192.4000001.000x1001600
len_4096 / sparseours_str318.9000001.657x100800
len_4096 / sparsestring1384.0000007.193x100200
len_4096 / sparsestr1411.0000007.334x100200
len_64 / alternatingours_string15.1400001.000x10025600
len_64 / alternatingours_str17.0900001.129x10012800
len_64 / alternatingstring25.8600001.708x10012800
len_64 / alternatingstr29.4600001.946x10012800
len_64 / denseours_string15.1400001.000x10025600
len_64 / denseours_str17.1000001.129x10012800
len_64 / densestring25.8600001.708x10012800
len_64 / densestr29.4600001.946x10012800
len_64 / sparseours_string15.2900001.000x10012800
len_64 / sparseours_str17.1000001.118x10012800
len_64 / sparsestring25.8600001.691x10012800
len_64 / sparsestr29.4600001.927x10012800
len_65 / denseours_str21.5500001.000x10012800
len_65 / denseours_str_unaligned22.8900001.062x10012800
len_65 / denseours_string34.9000001.619x10012800
len_65536 / alternatingours_str3985.0000001.000x100100
len_65536 / alternatingours_string5317.0000001.334x100100
len_65536 / alternatingstr17180.0000004.311x100100
len_65536 / alternatingstring17180.0000004.311x100100
len_65536 / denseours_string2904.0000001.000x100100
len_65536 / denseours_str3975.0000001.369x100100
len_65536 / densestr17180.0000005.916x100100
len_65536 / densestring19290.0000006.643x100100
len_65536 / sparseours_string5447.0000001.000x100100
len_65536 / sparseours_str8317.0000001.527x100100
len_65536 / sparsestring17180.0000003.154x100100
len_65536 / sparsestr17190.0000003.156x100100

insert_middle

Median table
caselegendmedian ns/oprelativesamplesiters
len_65ours_string29.5400001.000x1006400
len_65string46.6100001.578x1003200
len_65536ours_string1592.0000001.000x100100
len_65536string1942.0000001.220x100100

leading_zeros

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / all_zerosours_string7.2780001.000x10025600
len_4096 / all_zerosbitvec_simd7.9820001.097x10025600
len_4096 / all_zerosours_str8.6100001.183x10025600
len_4096 / denseours_string0.9300001.000x100204800
len_4096 / denseours_str1.4000001.505x100204800
len_4096 / densebitvec_simd2.1340002.295x10051200
len_65 / all_zerosbitvec_simd1.0530001.000x100204800
len_65 / all_zerosours_string1.3070001.241x100204800
len_65 / all_zerosours_str3.9910003.790x10051200
len_65 / alternatingours_string0.9260001.000x100204800
len_65 / alternatingours_str1.4200001.533x100204800
len_65 / alternatingbitvec_simd2.5460002.749x10051200
len_65 / denseours_string0.9310001.000x100204800
len_65 / denseours_str1.4000001.504x100204800
len_65 / densebitvec_simd2.4660002.649x10051200
len_65536 / all_zerosours_string59.4100001.000x1003200
len_65536 / all_zerosours_str60.3600001.016x1003200
len_65536 / all_zerosbitvec_simd107.9000001.816x1001600
unaligned_3 / len_4096 / all_zerosours_str11.9300001.000x10012800
unaligned_31 / len_4096 / all_zerosours_str11.9300001.000x10012800
unaligned_63 / len_4096 / all_zerosours_str11.7800001.000x10012800

matches_at_str

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / no / alignedstring3.1510001.000x10051200
len_65 / no / alignedours_string_str3.3360001.059x100102400
len_65 / no / unalignedstring3.4930001.000x100102400
len_65 / no / unalignedours_string_str3.8350001.098x10051200
len_65 / yes / alignedstring3.1510001.000x10051200
len_65 / yes / alignedours_string_str3.3660001.068x10051200
len_65 / yes / unalignedstring3.1510001.000x10051200
len_65 / yes / unalignedours_string_str3.8650001.227x10051200
len_65536 / no / alignedstring3.1410001.000x100102400
len_65536 / no / alignedours_string_str3.5030001.115x100102400
len_65536 / no / unalignedstring3.1420001.000x100102400
len_65536 / no / unalignedours_string_str4.6960001.495x10051200
len_65536 / yes / alignedstring4.0110001.000x10051200
len_65536 / yes / alignedours_string_str4.4620001.112x10051200
len_65536 / yes / unalignedstring4.1690001.000x10051200
len_65536 / yes / unalignedours_string_str6.4370001.544x10051200

not

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / alternatingours_string22.0200001.000x1006400
len_4096 / alternatingbitvec_simd71.9400003.267x1003200
len_4096 / denseours_string21.8600001.000x1006400
len_4096 / densebitvec_simd65.3600002.990x1001600
len_4096 / sparseours_string22.0200001.000x1006400
len_4096 / sparsebitvec_simd70.3800003.196x1003200
len_65 / alternatingours_string18.5800001.000x1006400
len_65 / alternatingbitvec_simd37.2100002.003x1006400
len_65 / denseours_string18.9000001.000x1006400
len_65 / densebitvec_simd37.2100001.969x1006400
len_65 / sparseours_string18.9000001.000x1006400
len_65 / sparsebitvec_simd37.3500001.976x1006400
len_65536 / alternatingours_string167.4000001.000x100800
len_65536 / alternatingbitvec_simd242.4000001.448x100400
len_65536 / denseours_string166.7000001.000x100800
len_65536 / densebitvec_simd238.6000001.431x100800
len_65536 / sparseours_string152.4000001.000x1001600
len_65536 / sparsebitvec_simd235.0000001.542x1001600

pop

Median table
caselegendmedian ns/oprelativesamplesiters
len_65string23.1100001.000x1006400
len_65ours_string26.1000001.129x1006400
len_65536ours_string127.3000001.000x1001600
len_65536string1527.00000011.995x100200

push

Median table
caselegendmedian ns/oprelativesamplesiters
len_65ours_string26.0900001.000x10012800
len_65string43.7700001.678x1003200
len_65536ours_string286.2000001.000x100800
len_65536string1571.0000005.489x100100

push_bit_string

Median table
caselegendmedian ns/oprelativesamplesiters
len_65ours_string33.1300001.000x1006400
len_65string46.9000001.416x1003200
len_65536ours_string432.6000001.000x100400
len_65536string1761.0000004.071x100100

remove_middle

Median table
caselegendmedian ns/oprelativesamplesiters
len_65string25.4700001.000x1006400
len_65ours_string37.8300001.485x1003200
len_65536ours_string1231.0000001.000x100200
len_65536string2072.0000001.683x100100

replace_interval

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / longerours_string44.4000001.000x1003200
len_65 / longerstring80.7100001.818x1001600
len_65 / same_lenstring35.8000001.000x1006400
len_65 / same_lenours_string55.5000001.550x1006400
len_65 / shorterstring33.9100001.000x1006400
len_65 / shorterours_string40.9600001.208x1003200
len_65536 / longerours_string1797.0000001.000x100100
len_65536 / longerstring19200.00000010.684x100100
len_65536 / same_lenours_string1932.0000001.000x100100
len_65536 / same_lenstring10120.0000005.238x100100
len_65536 / shorterours_string1521.0000001.000x100100
len_65536 / shorterstring6304.0000004.145x100100

rfind

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / endours_string_string10.8000001.000x10025600
len_65 / endours_string_str10.8700001.006x10025600
len_65 / endstring48.4700004.488x1006400
len_65 / frontours_string_str70.4000001.000x1003200
len_65 / frontours_string_string72.5800001.031x1003200
len_65 / frontstring107.6000001.528x1003200
len_65 / middleours_string_str42.0500001.000x1006400
len_65 / middleours_string_string43.5400001.035x1006400
len_65 / middlestring109.6000002.606x1003200
len_65 / missstring34.3900001.000x1006400
len_65 / missours_string_str70.0800002.038x1003200
len_65 / missours_string_string71.6500002.083x1003200
len_65536 / endours_string_str35.3200001.000x1006400
len_65536 / endours_string_string57.8600001.638x1003200
len_65536 / endstring33050.000000935.730x100100
len_65536 / frontours_string_str42520.0000001.000x100100
len_65536 / frontours_string_string42520.0000001.000x100100
len_65536 / frontstring154600.0000003.636x100100
len_65536 / middleours_string_str21300.0000001.000x100100
len_65536 / middleours_string_string21300.0000001.000x100100
len_65536 / middlestring94190.0000004.422x100100
len_65536 / missstring26380.0000001.000x100100
len_65536 / missours_string_str42490.0000001.611x100100
len_65536 / missours_string_string42490.0000001.611x100100

shl

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / amount_1ours_string60.3800001.000x1006400
len_4096 / amount_65ours_string59.5800001.000x1006400
len_65 / amount_1ours_string43.3100001.000x1006400
len_65536 / amount_1ours_string296.3000001.000x1001600
len_65536 / amount_65ours_string293.8000001.000x1001600

shl_assign

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096_by_1assign43.3000001.000x1006400
len_4096_by_1owned51.9300001.199x1003200
len_4096_by_64assign39.7100001.000x1003200
len_4096_by_64owned50.6800001.276x1003200
len_65536_by_1assign330.1000001.000x100400
len_65536_by_1owned350.1000001.061x100400
len_65536_by_17assign330.1000001.000x100400
len_65536_by_17owned347.6000001.053x100400

slice

Median table
caselegendmedian ns/oprelativesamplesiters
len_65string20.2900001.000x1006400
len_65ours_string21.8700001.078x10012800
len_65536ours_string49.2500001.000x1006400
len_65536string145.1000002.946x100200

starts_with

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / hitstring2.7990001.000x100102400
len_65 / hitours_string_str4.6770001.671x10051200
len_65 / hitours_string_string4.6960001.678x10051200
len_65 / hitours_str_string5.1460001.839x10051200
len_65 / hitours_str_str5.2040001.859x10051200
len_65 / missstring3.1610001.000x100102400
len_65 / missours_string_str4.6770001.480x10051200
len_65 / missours_string_string4.7350001.498x10051200
len_65 / missours_str_string5.1260001.622x10051200
len_65 / missours_str_str5.2450001.659x10051200
len_65536 / hitstring3.8170001.000x10051200
len_65536 / hitours_string_string5.2040001.363x10051200
len_65536 / hitours_string_str5.3410001.399x10051200
len_65536 / hitours_str_string5.5380001.451x10051200
len_65536 / hitours_str_str5.6360001.477x10051200
len_65536 / missstring2.7990001.000x100102400
len_65536 / missours_string_str4.7350001.692x10051200
len_65536 / missours_string_string4.7550001.699x10051200
len_65536 / missours_str_string5.1070001.825x10051200
len_65536 / missours_str_str5.1850001.852x10051200

strip_prefix

Median table
caselegendmedian ns/oprelativesamplesiters
len_65 / hitours_string20.9300001.000x10012800
len_65 / hitstring37.3600001.785x1006400
len_65 / missours_string3.8570001.000x10051200
len_65 / missstring4.5600001.182x10051200
len_65536 / hitours_string245.0000001.000x100800
len_65536 / hitstring1797.0000007.335x100100
len_65536 / missstring3.8760001.000x10051200
len_65536 / missours_string5.6730001.464x10025600

truncate

Median table
caselegendmedian ns/oprelativesamplesiters
128_to_65string22.8000001.000x1006400
128_to_65ours_string26.5700001.165x1006400
65536_to_128ours_string142.9000001.000x1001600
65536_to_128string1552.00000010.861x100100
65_to_64string23.9100001.000x1006400
65_to_64ours_string25.9300001.084x10012800

xor

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096 / alternatingours_string25.9400001.000x1006400
len_4096 / alternatingbitvec_simd63.5200002.449x1001600
len_4096 / denseours_string25.7900001.000x1006400
len_4096 / densebitvec_simd73.3600002.845x1003200
len_4096 / sparseours_string26.2400001.000x1006400
len_4096 / sparsebitvec_simd74.4400002.837x1003200
len_65 / alternatingours_string18.1100001.000x1006400
len_65 / alternatingbitvec_simd22.1800001.225x10012800
len_65 / denseours_string18.2700001.000x1006400
len_65 / densebitvec_simd22.1800001.214x10012800
len_65 / sparseours_string18.1100001.000x1006400
len_65 / sparsebitvec_simd22.3500001.234x1006400
len_65536 / alternatingbitvec_simd220.1000001.000x100200
len_65536 / alternatingours_string232.5000001.056x100800
len_65536 / densebitvec_simd201.2000001.000x1001600
len_65536 / denseours_string232.5000001.156x100800
len_65536 / sparsebitvec_simd198.0000001.000x1001600
len_65536 / sparseours_string234.3000001.183x1001600

zeros

Median table
caselegendmedian ns/oprelativesamplesiters
len_4096ours_string26.8600001.000x1003200
len_4096bitvec_simd61.0200002.272x1001600
len_65ours_string22.9600001.000x1006400
len_65bitvec_simd25.7000001.119x10012800
len_65536ours_string116.6000001.000x1001600
len_65536bitvec_simd163.6000001.403x100800

Raw Divan output

divan.txt