Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

sequences

Benchmarks for sequence data structures: lists, vectors, etc.

Running

For all benchmarks:

$ stack bench :time

For specific benchmarks:

$ stack bench :time --benchmark-arguments Consing

Results

Results are ordered by least to most time.

Consing

Name10100100010000
Data.List3.457 ns4.099 ns3.425 ns0.003 μs
Data.DList5.757 ns5.268 ns5.568 ns0.005 μs
Data.Acc5.601 ns6.143 ns5.883 ns0.006 μs
Data.Sequence7.249 ns9.292 ns7.571 ns0.008 μs
Data.RRBVector23.07 ns60.90 ns63.95 ns0.070 μs
Data.Vector.Storable16.10 ns44.17 ns236.0 ns2.487 μs
Data.Vector.Unboxed14.35 ns58.29 ns233.6 ns2.504 μs
Data.Vector34.39 ns93.55 ns749.3 ns7.583 μs

Snocing

Name10100100010000
Data.DList5.532 ns5.019 ns6.397 ns0.006 μs
Data.Acc5.913 ns7.140 ns8.277 ns0.006 μs
Data.Sequence7.285 ns7.183 ns7.224 ns0.007 μs
Data.RRBVector22.92 ns60.99 ns54.70 ns0.055 μs
Data.Vector.Unboxed15.75 ns45.87 ns236.3 ns2.458 μs
Data.Vector.Storable15.35 ns50.05 ns309.1 ns2.401 μs
Data.Vector27.68 ns88.50 ns741.3 ns8.582 μs

Indexing

Name10100100010000
Data.Vector.Storable6.634 ns7.380 ns6.404 ns0.006 μs
Data.Vector6.851 ns9.825 ns12.79 ns0.007 μs
Data.Vector.Unboxed7.235 ns8.447 ns15.47 ns0.008 μs
Data.Massiv.Array11.08 ns14.58 ns9.754 ns0.009 μs
Data.RRBVector16.67 ns23.26 ns13.57 ns0.014 μs
Data.Sequence25.14 ns48.31 ns66.50 ns0.024 μs
Data.List17.55 ns213.3 ns3577 ns27.82 μs

Append

Name10100100010000
Data.DList8.959 ns8.967 ns0.022 μs0.015 μs
Data.Acc9.058 ns13.44 ns0.021 μs0.017 μs
Data.Sequence44.08 ns102.0 ns0.234 μs0.414 μs
Data.Vector.Unboxed24.02 ns69.99 ns0.571 μs6.627 μs
Data.Vector.Storable24.38 ns79.54 ns0.580 μs6.706 μs
Data.RRBVector45.98 ns705.1 ns3.848 μs6.971 μs
Data.Vector40.22 ns164.6 ns1.993 μs23.25 μs
Data.List72.52 ns781.1 ns15.43 μs192.0 μs

Length

Name10100100010000
Data.Vector.Storable8.156 ns8.277 ns0.009 μs0.009 μs
Data.Sequence9.241 ns8.856 ns0.010 μs0.009 μs
Data.RRBVector9.678 ns9.383 ns0.009 μs0.010 μs
Data.Vector10.54 ns9.682 ns0.010 μs0.010 μs
Data.Vector.Unboxed10.72 ns9.999 ns0.010 μs0.010 μs
Data.Massiv.Array10.46 ns10.20 ns0.010 μs0.011 μs
Data.List21.64 ns185.4 ns2.197 μs27.09 μs
Data.DList132.4 ns956.7 ns9.282 μs95.80 μs
Data.Acc122.5 ns1295 ns13.69 μs190.7 μs

Stable Sort

Name10100100010000
Data.Vector.Unboxed85.88 ns7.150 μs136.4 μs2.360 ms
Data.Vector.Storable73.52 ns6.466 μs142.7 μs2.445 ms
Data.Vector306.2 ns8.012 μs169.8 μs3.241 ms
Data.Sequence980.3 ns14.55 μs295.1 μs7.430 ms
Data.List502.1 ns15.58 μs288.9 μs9.445 ms

Replicate

Name10100100010000
Data.Vector.Unboxed32.34 ns96.80 ns0.532 μs3.522 μs
Data.Vector.Storable36.31 ns110.2 ns0.474 μs4.451 μs
Data.RRBVector263.3 ns460.7 ns3.015 μs33.00 μs
Data.Vector87.69 ns739.2 ns3.742 μs36.52 μs
Data.Sequence93.59 ns731.2 ns5.813 μs56.32 μs
Data.List114.2 ns2300 ns9.543 μs80.01 μs
Data.DList163.2 ns2108 ns10.40 μs92.43 μs

Min

Name10100100010000
Data.Vector.Storable16.02 ns0.081 μs0.769 μs8.157 μs
Data.Massiv.Array39.87 ns0.090 μs0.782 μs8.697 μs
Data.Vector.Unboxed17.54 ns0.096 μs0.842 μs9.815 μs
Data.Vector26.36 ns0.202 μs2.086 μs21.78 μs
Data.List26.50 ns0.290 μs2.903 μs29.08 μs
Data.RRBVector111.4 ns1.095 μs12.00 μs122.6 μs
Data.DList231.5 ns2.109 μs25.42 μs384.9 μs
Data.Sequence385.4 ns3.662 μs49.03 μs476.3 μs
Data.Acc383.4 ns3.811 μs45.25 μs813.3 μs

Max

Name10100100010000
Data.Vector.Storable16.40 ns0.102 μs0.771 μs7.069 μs
Data.Massiv.Array39.29 ns0.105 μs0.793 μs7.955 μs
Data.Vector.Unboxed24.51 ns0.132 μs1.126 μs11.23 μs
Data.Vector29.32 ns0.208 μs1.919 μs18.79 μs
Data.List30.56 ns0.341 μs2.867 μs29.62 μs
Data.RRBVector110.4 ns1.111 μs11.29 μs132.4 μs
Data.DList256.9 ns4.532 μs17.41 μs246.5 μs
Data.Sequence275.2 ns3.133 μs43.81 μs449.9 μs
Data.Acc353.5 ns3.778 μs40.18 μs977.2 μs

Filter Element

Name1100100010000
Data.Vector.Unboxed68.01 μs58.17 μs70.60 μs56.90 μs
Data.Vector101.1 μs90.79 μs86.63 μs87.79 μs
Data.Vector.Storable119.4 μs100.7 μs106.2 μs95.62 μs
Data.List102.6 μs148.6 μs148.8 μs99.55 μs
Data.Sequence436.2 μs315.9 μs265.4 μs298.9 μs

Filter By Index

Name1100100010000
Data.Vector.Unboxed70.23 μs119.1 μs95.71 μs72.42 μs
Data.Vector.Storable122.9 μs166.2 μs114.3 μs130.1 μs
Data.Vector188.4 μs179.2 μs342.2 μs222.0 μs

About

Benchmarks for sequence data structures: lists, vectors, etc.

Resources

Stars

91 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages