zerodep Benchmark Report

Version: 46a0426  |  Commit: 46a04268  |  2026-09-28T05:18:16.698929+00:00

40
Modules
460
Comparisons
319
Faster than ref
35
Similar
106
Slower than ref
a2a (9) acp (9) aes (42) aiosqlite (11) cache (10) cdp (0) config (5) diff (3) dotenv (3) frontmatter (6) httpclient (15) httpserver (18) jsonrpc (4) jsonschema (7) jsonx (12) llmstxt (0) markdown (5) multipart (30) persistdict (20) png (14) profiler (8) protobuf (25) qr (7) ratelimit (0) readability (12) retry (3) runner (10) scheduler (7) semver (6) soup (94) sparse_search (7) sse (3) structlog (4) tabulate (3) toon (0) useragent (4) validate (5) websocket (5) xml (6) yaml (28)📈 History

a2a↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Deserialize (Large)zerodepa2a-protocol700.0 µs587.2 µs1.4K1.7K679.3 µs1.63 ms42.5 µs719.4 µs572.4 µs749.9 µs13.5 µs601.5 µs1.2x slower
Deserialize (Medium)zerodepa2a-protocol40.0 µs37.1 µs25.0K26.9K39.0 µs95.3 µs2.7 µs42.3 µs35.9 µs101.6 µs2.8 µs39.1 µs1.1x slower
Deserialize (Small)zerodepa2a-protocol1.9 µs1.1 µs530.6K891.8K1.8 µs25.6 µs465.8 ns1.9 µs1.1 µs17.7 µs332.8 ns1.1 µs1.7x slower
Json Round Trip (Large)zerodepa2a-protocol3.04 ms3.12 ms328.8321.02.99 ms3.39 ms45.1 µs3.11 ms3.02 ms6.01 ms318.1 µs3.23 ms~equal
Json Round Trip (Medium)zerodepa2a-protocol172.7 µs173.6 µs5.8K5.8K165.2 µs315.7 µs8.1 µs186.2 µs166.6 µs305.1 µs8.5 µs187.6 µs~equal
Json Round Trip (Small)zerodepa2a-protocol11.2 µs12.3 µs89.6K81.1K10.3 µs102.8 µs2.4 µs11.6 µs11.6 µs54.6 µs2.0 µs12.8 µs1.1x faster
Serialize (Large)zerodepa2a-protocol1.57 ms1.94 ms635.7515.61.54 ms2.03 ms42.1 µs1.59 ms1.90 ms3.40 ms103.8 µs1.99 ms1.2x faster
Serialize (Medium)zerodepa2a-protocol84.6 µs101.1 µs11.8K9.9K82.2 µs146.8 µs4.0 µs93.7 µs97.6 µs209.0 µs5.5 µs110.5 µs1.2x faster
Serialize (Small)zerodepa2a-protocol4.0 µs5.3 µs250.0K190.1K3.8 µs28.4 µs714.0 ns4.0 µs4.6 µs4.80 ms41.7 µs4.9 µs1.3x faster

acp↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Deserialize (Large)zerodepacp (ref)152.8 µs76.0 µs6.5K13.2K148.0 µs521.0 µs14.0 µs161.2 µs73.7 µs137.4 µs4.9 µs86.5 µs2.0x slower
Deserialize (Medium)zerodepacp (ref)6.0 µs58.6 µs166.7K17.1K5.7 µs31.0 µs852.3 ns6.0 µs55.8 µs127.3 µs4.8 µs70.7 µs9.8x faster
Deserialize (Small)zerodepacp (ref)1.7 µs1.7 µs574.6K597.0K1.6 µs20.9 µs489.1 ns1.8 µs1.6 µs25.2 µs474.8 ns1.7 µs~equal
Json Round Trip (Large)zerodepacp (ref)941.2 µs391.8 µs1.1K2.6K917.8 µs1.21 ms19.5 µs961.7 µs379.1 µs535.6 µs12.4 µs407.6 µs2.4x slower
Json Round Trip (Medium)zerodepacp (ref)88.3 µs84.3 µs11.3K11.9K85.1 µs162.4 µs5.6 µs102.0 µs80.4 µs131.4 µs5.6 µs98.5 µs~equal
Json Round Trip (Small)zerodepacp (ref)10.2 µs6.8 µs98.1K147.2K9.7 µs44.9 µs1.5 µs10.2 µs6.5 µs46.8 µs1.3 µs6.8 µs1.5x slower
Serialize (Large)zerodepacp (ref)511.4 µs74.4 µs2.0K13.4K498.0 µs743.1 µs13.5 µs526.4 µs72.1 µs141.1 µs4.3 µs84.3 µs6.9x slower
Serialize (Medium)zerodepacp (ref)61.1 µs13.2 µs16.4K75.8K59.0 µs137.4 µs3.8 µs70.6 µs12.7 µs40.7 µs1.4 µs13.2 µs4.6x slower
Serialize (Small)zerodepacp (ref)3.9 µs1.3 µs255.2K796.7K3.8 µs36.0 µs783.4 ns3.9 µs1.2 µs22.3 µs444.5 ns1.3 µs3.1x slower

aes↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Cbc Decrypt (Large)pure_pythonPyCryptodome348.39 ms134.7 µs2.97.4K346.94 ms351.26 ms1.68 ms351.26 ms130.9 µs215.8 µs5.9 µs146.2 µs2586.4x slower
Cbc Decrypt (Large)opensslPyCryptodome20.1 µs134.7 µs49.7K7.4K18.4 µs62.3 µs3.6 µs28.3 µs130.9 µs215.8 µs5.9 µs146.2 µs6.7x faster
Cbc Decrypt (Medium)pure_pythonPyCryptodome5.54 ms14.0 µs180.471.5K5.48 ms5.99 ms48.6 µs5.59 ms13.2 µs58.1 µs1.9 µs14.7 µs396.0x slower
Cbc Decrypt (Medium)opensslPyCryptodome7.6 µs14.0 µs131.5K71.5K7.3 µs34.3 µs1.2 µs7.6 µs13.2 µs58.1 µs1.9 µs14.7 µs1.8x faster
Cbc Decrypt (Small)pure_pythonPyCryptodome106.2 µs11.8 µs9.4K85.1K102.2 µs191.2 µs5.4 µs115.6 µs11.0 µs44.9 µs1.8 µs12.2 µs9.0x slower
Cbc Decrypt (Small)opensslPyCryptodome6.9 µs11.8 µs144.1K85.1K6.6 µs28.7 µs1.2 µs6.9 µs11.0 µs44.9 µs1.8 µs12.2 µs1.7x faster
Cbc Encrypt (Large)pure_pythonPyCryptodome253.52 ms134.1 µs3.97.5K251.88 ms256.62 ms1.91 ms256.62 ms130.6 µs223.8 µs6.4 µs144.4 µs1891.0x slower
Cbc Encrypt (Large)opensslPyCryptodome68.7 µs134.1 µs14.6K7.5K66.9 µs157.1 µs4.0 µs79.3 µs130.6 µs223.8 µs6.4 µs144.4 µs2.0x faster
Cbc Encrypt (Medium)pure_pythonPyCryptodome4.02 ms13.3 µs248.875.0K3.97 ms4.15 ms31.8 µs4.09 ms12.6 µs46.0 µs1.7 µs13.8 µs301.6x slower
Cbc Encrypt (Medium)opensslPyCryptodome8.4 µs13.3 µs119.6K75.0K8.1 µs26.0 µs1.2 µs8.4 µs12.6 µs46.0 µs1.7 µs13.8 µs1.6x faster
Cbc Encrypt (Small)pure_pythonPyCryptodome81.5 µs11.1 µs12.3K90.1K78.2 µs324.6 µs8.5 µs90.2 µs10.5 µs42.2 µs1.6 µs11.4 µs7.3x slower
Cbc Encrypt (Small)opensslPyCryptodome6.9 µs11.1 µs144.3K90.1K6.6 µs30.0 µs1.1 µs6.9 µs10.5 µs42.2 µs1.6 µs11.4 µs1.6x faster
Ctr Encrypt (Large)pure_pythonPyCryptodome253.02 ms91.4 µs4.010.9K251.19 ms255.12 ms1.47 ms255.12 ms88.3 µs145.5 µs4.8 µs102.3 µs2769.7x slower
Ctr Encrypt (Large)opensslPyCryptodome20.5 µs91.4 µs48.9K10.9K19.5 µs63.0 µs2.4 µs21.9 µs88.3 µs145.5 µs4.8 µs102.3 µs4.5x faster
Ctr Encrypt (Medium)pure_pythonPyCryptodome4.00 ms14.2 µs250.170.2K3.95 ms4.45 ms36.2 µs4.05 ms13.4 µs62.5 µs2.2 µs14.9 µs280.7x slower
Ctr Encrypt (Medium)opensslPyCryptodome8.2 µs14.2 µs122.3K70.2K7.8 µs34.9 µs1.2 µs8.2 µs13.4 µs62.5 µs2.2 µs14.9 µs1.7x faster
Ctr Encrypt (Small)pure_pythonPyCryptodome82.7 µs12.9 µs12.1K77.8K79.6 µs142.1 µs4.0 µs92.4 µs12.1 µs50.8 µs1.9 µs13.3 µs6.4x slower
Ctr Encrypt (Small)opensslPyCryptodome7.6 µs12.9 µs131.7K77.8K7.3 µs32.7 µs1.1 µs7.6 µs12.1 µs50.8 µs1.9 µs13.3 µs1.7x faster
Ecb Decrypt (Large)pure_pythonPyCryptodome339.30 ms22.2 µs2.945.1K336.28 ms340.76 ms1.83 ms340.76 ms21.1 µs62.1 µs2.5 µs23.9 µs15303.2x slower
Ecb Decrypt (Large)opensslPyCryptodome18.8 µs22.2 µs53.3K45.1K17.9 µs52.4 µs2.2 µs19.7 µs21.1 µs62.1 µs2.5 µs23.9 µs1.2x faster
Ecb Decrypt (Medium)pure_pythonPyCryptodome5.55 ms10.6 µs180.394.3K5.41 ms8.56 ms414.4 µs5.72 ms10.0 µs80.4 µs1.7 µs11.0 µs523.2x slower
Ecb Decrypt (Medium)opensslPyCryptodome7.4 µs10.6 µs135.5K94.3K7.0 µs38.4 µs1.4 µs7.4 µs10.0 µs80.4 µs1.7 µs11.0 µs1.4x faster
Ecb Decrypt (Small)pure_pythonPyCryptodome103.7 µs10.2 µs9.6K97.9K100.4 µs164.7 µs4.5 µs112.6 µs9.6 µs33.7 µs1.6 µs10.5 µs10.1x slower
Ecb Decrypt (Small)opensslPyCryptodome6.7 µs10.2 µs148.3K97.9K6.5 µs36.3 µs1.2 µs6.7 µs9.6 µs33.7 µs1.6 µs10.5 µs1.5x faster
Ecb Encrypt (Large)pure_pythonPyCryptodome245.57 ms22.0 µs4.145.5K244.53 ms247.66 ms1.26 ms247.66 ms20.9 µs64.6 µs2.5 µs23.5 µs11166.4x slower
Ecb Encrypt (Large)opensslPyCryptodome20.0 µs22.0 µs50.0K45.5K19.2 µs67.5 µs2.3 µs21.3 µs20.9 µs64.6 µs2.5 µs23.5 µs1.1x faster
Ecb Encrypt (Medium)pure_pythonPyCryptodome3.90 ms10.1 µs256.699.4K3.86 ms4.11 ms22.3 µs3.94 ms9.4 µs37.9 µs1.5 µs10.3 µs387.3x slower
Ecb Encrypt (Medium)opensslPyCryptodome7.3 µs10.1 µs137.2K99.4K6.9 µs41.2 µs1.4 µs7.4 µs9.4 µs37.9 µs1.5 µs10.3 µs1.4x faster
Ecb Encrypt (Small)pure_pythonPyCryptodome79.2 µs9.5 µs12.6K105.3K76.5 µs137.8 µs3.9 µs88.2 µs8.9 µs48.1 µs1.5 µs9.7 µs8.3x slower
Ecb Encrypt (Small)opensslPyCryptodome6.7 µs9.5 µs149.2K105.3K6.4 µs26.8 µs1.2 µs6.7 µs8.9 µs48.1 µs1.5 µs9.7 µs1.4x faster
Gcm Decrypt (Large)pure_pythonPyCryptodome362.30 ms167.4 µs2.86.0K360.28 ms363.98 ms1.62 ms363.98 ms160.1 µs268.0 µs8.8 µs182.5 µs2164.2x slower
Gcm Decrypt (Large)opensslPyCryptodome30.2 µs167.4 µs33.1K6.0K29.0 µs70.3 µs2.9 µs33.8 µs160.1 µs268.0 µs8.8 µs182.5 µs5.5x faster
Gcm Decrypt (Medium)pure_pythonPyCryptodome5.96 ms78.1 µs167.712.8K5.86 ms8.57 ms207.0 µs6.03 ms73.5 µs151.5 µs6.2 µs93.9 µs76.4x slower
Gcm Decrypt (Medium)opensslPyCryptodome10.1 µs78.1 µs99.4K12.8K9.6 µs50.2 µs1.4 µs10.1 µs73.5 µs151.5 µs6.2 µs93.9 µs7.8x faster
Gcm Decrypt (Small)pure_pythonPyCryptodome263.4 µs75.4 µs3.8K13.3K254.9 µs391.8 µs8.3 µs274.5 µs70.9 µs161.0 µs7.4 µs91.1 µs3.5x slower
Gcm Decrypt (Small)opensslPyCryptodome9.3 µs75.4 µs107.5K13.3K8.9 µs39.8 µs1.3 µs9.3 µs70.9 µs161.0 µs7.4 µs91.1 µs8.1x faster
Gcm Encrypt (Large)pure_pythonPyCryptodome366.04 ms151.1 µs2.76.6K365.02 ms367.75 ms1.18 ms367.75 ms144.0 µs228.4 µs8.1 µs166.1 µs2422.5x slower
Gcm Encrypt (Large)opensslPyCryptodome30.0 µs151.1 µs33.3K6.6K28.7 µs97.6 µs3.6 µs34.2 µs144.0 µs228.4 µs8.1 µs166.1 µs5.0x faster
Gcm Encrypt (Medium)pure_pythonPyCryptodome5.88 ms59.2 µs170.216.9K5.80 ms6.23 ms43.5 µs5.93 ms55.1 µs139.9 µs5.2 µs73.2 µs99.2x slower
Gcm Encrypt (Medium)opensslPyCryptodome10.2 µs59.2 µs98.2K16.9K9.7 µs47.2 µs1.5 µs10.3 µs55.1 µs139.9 µs5.2 µs73.2 µs5.8x faster
Gcm Encrypt (Small)pure_pythonPyCryptodome267.6 µs57.5 µs3.7K17.4K259.8 µs449.2 µs8.3 µs278.2 µs53.6 µs123.2 µs5.3 µs71.6 µs4.7x slower
Gcm Encrypt (Small)opensslPyCryptodome9.3 µs57.5 µs107.6K17.4K8.9 µs37.8 µs1.3 µs9.3 µs53.6 µs123.2 µs5.3 µs71.6 µs6.2x faster

aiosqlite↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Bulk Insertzerodepaiosqlite2.22 ms2.30 ms451.4434.21.93 ms20.26 ms995.9 µs2.48 ms2.06 ms9.51 ms496.8 µs2.54 ms~equal
Bulk Selectzerodepaiosqlite1.05 ms1.13 ms951.8885.6994.3 µs2.44 ms130.3 µs1.10 ms1.09 ms1.43 ms30.1 µs1.18 ms1.1x faster
Concurrent Taskszerodepaiosqlite138.62 ms137.86 ms7.27.3136.20 ms144.76 ms2.73 ms144.76 ms136.43 ms139.45 ms975.0 µs139.45 ms~equal
Cursor Iterationzerodepaiosqlite58.06 ms2.28 ms17.2439.452.04 ms74.38 ms6.77 ms74.38 ms2.18 ms3.06 ms126.7 µs2.53 ms25.5x slower
Execute Insertzerodepaiosqlite6.46 ms7.13 ms154.8140.26.07 ms9.45 ms450.0 µs7.28 ms6.71 ms10.66 ms645.5 µs8.83 ms1.1x faster
Large Result Fetchallzerodepaiosqlite5.60 ms5.69 ms178.6175.85.45 ms6.00 ms94.8 µs5.79 ms5.59 ms6.71 ms102.7 µs5.78 ms~equal
Large Result Iterationzerodepaiosqlite574.30 ms16.23 ms1.761.6555.77 ms634.82 ms34.17 ms634.82 ms15.19 ms20.20 ms1.09 ms18.83 ms35.4x slower
Large Row Insertzerodepaiosqlite11.34 ms10.79 ms88.292.710.22 ms16.77 ms1.17 ms13.26 ms10.16 ms17.67 ms1.02 ms12.37 ms1.1x slower
Large Row Selectzerodepaiosqlite1.76 ms1.81 ms568.9553.91.66 ms6.22 ms280.4 µs1.83 ms1.75 ms2.03 ms30.2 µs1.86 ms~equal
Mixed Read Writezerodepaiosqlite31.57 ms33.51 ms31.729.827.86 ms35.95 ms2.25 ms35.34 ms29.75 ms38.55 ms2.50 ms38.30 ms1.1x faster
Single Insert Selectzerodepaiosqlite1.63 ms1.71 ms614.4584.61.37 ms5.69 ms375.6 µs2.00 ms1.49 ms7.70 ms424.1 µs1.90 ms~equal

cache↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Decorator Overheadzerodep_lrucachetools228.9 µs263.7 µs4.4K3.8K222.9 µs291.4 µs6.3 µs237.6 µs255.6 µs479.3 µs9.1 µs273.0 µs1.2x faster
Decorator Overheadzerodep_ttlcachetools302.1 µs300.9 µs3.3K3.3K292.8 µs376.4 µs8.1 µs311.6 µs289.9 µs387.0 µs8.2 µs311.1 µs~equal
Eviction Pressurezerodep_lfucachetools1.87 ms2.03 ms535.1491.81.71 ms2.13 ms21.0 µs1.90 ms2.01 ms2.46 ms29.1 µs2.07 ms1.1x faster
Eviction Pressurezerodep_lrucachetools1.68 ms1.90 ms596.4527.01.64 ms3.47 ms104.6 µs1.70 ms1.86 ms2.31 ms29.2 µs1.94 ms1.1x faster
Key Functionzerodep_hashkeycachetools635.5 µs641.7 µs1.6K1.6K615.3 µs1.19 ms34.2 µs646.5 µs617.1 µs1.37 ms38.9 µs660.6 µs~equal
Key Functionzerodep_typedkeycachetools1.29 ms1.61 ms775.3621.81.26 ms1.69 ms23.9 µs1.31 ms1.58 ms1.91 ms25.8 µs1.64 ms1.2x faster
LRUGet Setzerodepcachetools961.6 µs1.10 ms1.0K909.2935.2 µs1.27 ms16.0 µs983.6 µs1.07 ms2.07 ms49.1 µs1.12 ms1.1x faster
Mixed Workloadzerodepcachetools806.2 µs923.5 µs1.2K1.1K783.6 µs1.08 ms17.8 µs823.7 µs899.8 µs1.24 ms18.1 µs940.3 µs1.1x faster
TTLExpiryzerodepcachetools3.53 ms3.55 ms283.1281.43.33 ms3.86 ms90.5 µs3.68 ms3.34 ms3.84 ms96.9 µs3.71 ms~equal
Threaded Contentionzerodepcachetools11.56 ms12.51 ms86.579.911.35 ms12.61 ms147.5 µs11.67 ms12.34 ms12.74 ms71.7 µs12.62 ms1.1x faster

cdp↗

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Command Throughputsend_command_burst6.37 ms156.95.41 ms13.07 ms1.09 ms7.22 ms
Full Render Pipelineget_rendered_text1.05 ms951.5932.4 µs1.51 ms49.1 µs1.12 ms
Full Render Pipelinesh1.62 ms618.81.39 ms1.96 ms178.0 µs1.86 ms
Js Eval Throughputevaluate_burst1.57 ms638.41.44 ms2.01 ms163.6 µs1.89 ms
Multi Targetmulti_target_pipeline5.77 ms173.44.79 ms7.59 ms741.6 µs7.10 ms
Render Htmlget_rendered_html1.08 ms927.1924.3 µs1.55 ms88.4 µs1.31 ms

config↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Cast Boolzerodeppython-decouple1.3 µs2.4 µs794.2K414.2K1.2 µs22.4 µs384.0 ns1.3 µs2.3 µs37.0 µs643.3 ns2.4 µs1.9x faster
Cast Intzerodeppython-decouple1.2 µs2.2 µs844.6K455.4K1.1 µs74.8 µs460.0 ns1.2 µs2.0 µs35.9 µs634.1 ns2.2 µs1.9x faster
Csv Castzerodeppython-decouple2.6 µs12.1 µs378.2K82.9K2.5 µs41.7 µs631.1 ns2.7 µs11.3 µs60.6 µs1.9 µs12.5 µs4.6x faster
Dotenv Lookupzerodeppython-decouple696.1 ns1.6 µs1.44M627.4K666.8 ns3.3 µs71.5 ns707.3 ns1.5 µs36.9 µs464.1 ns1.6 µs2.3x faster
Env Lookupzerodeppython-decouple846.6 ns1.6 µs1.18M619.2K781.0 ns36.4 µs311.1 ns872.0 ns1.5 µs21.2 µs529.6 ns1.6 µs1.9x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Config Initzerodep_env_only564.2 ns1.77M538.5 ns3.5 µs63.1 ns570.1 ns
Config Initzerodep_with_dotenv1.64 ms611.31.58 ms1.96 ms63.3 µs1.78 ms
Config Initzerodep_with_json52.2 µs19.2K48.2 µs140.7 µs8.5 µs68.3 µs
Nested Json Lookupzerodep2.0 µs489.0K1.9 µs28.6 µs507.2 ns2.1 µs

diff↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Parse (Large)zerodepunidiff95.8 µs187.5 µs10.4K5.3K92.2 µs174.2 µs4.4 µs105.2 µs182.1 µs316.8 µs7.5 µs198.2 µs2.0x faster
Parse (Medium)zerodepunidiff31.6 µs62.1 µs31.6K16.1K30.6 µs76.5 µs2.2 µs32.3 µs59.9 µs132.2 µs3.7 µs72.1 µs2.0x faster
Parse (Small)zerodepunidiff10.4 µs22.0 µs96.3K45.5K10.0 µs51.2 µs1.2 µs10.5 µs21.1 µs53.3 µs1.9 µs22.5 µs2.1x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Apply (Large)zerodep60.4 µs16.6K58.0 µs163.3 µs4.2 µs70.2 µs
Apply (Medium)zerodep7.4 µs134.6K7.1 µs46.6 µs976.8 ns7.5 µs
Apply (Small)zerodep2.5 µs395.0K2.4 µs24.1 µs561.1 ns2.6 µs

dotenv↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Parse (Large)zerodeppython-dotenv1.34 ms1.33 ms748.3750.91.32 ms1.81 ms25.5 µs1.36 ms1.31 ms1.61 ms18.8 µs1.36 ms~equal
Parse (Medium)zerodeppython-dotenv190.7 µs191.8 µs5.2K5.2K185.1 µs276.3 µs7.1 µs201.4 µs185.6 µs332.3 µs12.6 µs201.7 µs~equal
Parse (Small)zerodeppython-dotenv26.9 µs27.0 µs37.2K37.1K26.0 µs89.8 µs2.3 µs27.2 µs25.9 µs84.9 µs2.4 µs27.4 µs~equal

frontmatter↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Parse (Large)zerodeppython-frontmatter447.2 µs448.8 µs2.2K2.2K436.5 µs674.0 µs10.3 µs458.6 µs435.0 µs883.9 µs25.8 µs460.7 µs~equal
Parse (Medium)zerodeppython-frontmatter86.4 µs86.4 µs11.6K11.6K83.4 µs179.0 µs4.9 µs96.2 µs83.4 µs193.0 µs4.8 µs96.2 µs~equal
Parse (Small)zerodeppython-frontmatter13.6 µs13.6 µs73.5K73.8K13.0 µs62.5 µs1.6 µs13.9 µs13.0 µs59.7 µs1.6 µs13.9 µs~equal
Serialize (Large)zerodeppython-frontmatter706.6 µs704.4 µs1.4K1.4K686.8 µs1.14 ms16.7 µs724.7 µs685.1 µs924.4 µs12.5 µs720.7 µs~equal
Serialize (Medium)zerodeppython-frontmatter154.4 µs154.3 µs6.5K6.5K147.3 µs268.0 µs9.4 µs168.0 µs147.9 µs324.1 µs8.6 µs168.1 µs~equal
Serialize (Small)zerodeppython-frontmatter22.5 µs24.6 µs44.4K40.6K21.0 µs96.1 µs2.5 µs24.2 µs22.7 µs77.2 µs2.9 µs26.8 µs1.1x faster

httpclient↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Async Client Getzerodephttpx1.19 ms27.29 ms838.236.61.05 ms1.48 ms68.4 µs1.34 ms26.22 ms34.27 ms2.10 ms33.12 ms22.9x faster
Async File Uploadzerodephttpx1.52 ms28.08 ms659.335.61.33 ms2.00 ms93.9 µs1.70 ms26.85 ms31.84 ms1.45 ms31.48 ms18.5x faster
Async Getzerodephttpx1.15 ms28.28 ms869.635.41.04 ms1.63 ms64.9 µs1.27 ms26.41 ms32.60 ms1.36 ms31.78 ms24.6x faster
Async Post JSONzerodephttpx1.26 ms27.97 ms791.935.71.09 ms1.53 ms90.5 µs1.44 ms26.54 ms33.96 ms2.06 ms32.97 ms22.2x faster
Async Streamingzerodephttpx1.22 ms27.30 ms822.836.61.07 ms1.47 ms60.7 µs1.35 ms26.22 ms32.03 ms1.56 ms31.38 ms22.5x faster
Concurrent Async Getzerodep[N=10]httpx9.05 ms89.30 ms110.511.28.51 ms10.28 ms250.6 µs9.40 ms85.79 ms95.18 ms2.89 ms95.18 ms9.9x faster
Concurrent Async Getzerodep[N=50]httpx44.76 ms344.57 ms22.32.940.18 ms120.95 ms16.24 ms42.74 ms342.83 ms346.39 ms1.33 ms346.39 ms7.7x faster
Concurrent Async Postzerodephttpx9.81 ms91.06 ms101.911.09.30 ms11.05 ms274.7 µs10.18 ms87.71 ms102.15 ms4.38 ms102.15 ms9.3x faster
Connection Pool Reusezerodephttpx66.27 ms128.50 ms15.17.863.68 ms71.67 ms2.29 ms71.67 ms117.18 ms199.03 ms26.48 ms199.03 ms1.9x faster
Sync Client Getzerodephttpx645.2 µs1.04 ms1.5K962.7577.9 µs945.4 µs34.0 µs699.0 µs868.6 µs9.67 ms310.7 µs1.17 ms1.6x faster
Sync File Uploadzerodephttpx1.01 ms19.78 ms989.450.6862.6 µs3.46 ms105.7 µs1.14 ms18.87 ms29.69 ms2.18 ms27.16 ms19.6x faster
Sync Getzerodephttpx629.2 µs19.65 ms1.6K50.9549.5 µs861.4 µs41.4 µs704.6 µs18.74 ms24.83 ms1.35 ms24.83 ms31.2x faster
Sync Gzip Decompressionzerodephttpx666.9 µs19.52 ms1.5K51.2584.3 µs1.03 ms45.8 µs758.6 µs18.39 ms28.64 ms2.32 ms27.62 ms29.3x faster
Sync Post JSONzerodephttpx757.7 µs19.18 ms1.3K52.1617.2 µs1.15 ms68.6 µs889.9 µs18.36 ms27.53 ms2.22 ms26.69 ms25.3x faster
Sync Streamingzerodephttpx650.5 µs19.24 ms1.5K52.0579.8 µs957.1 µs32.2 µs709.7 µs18.36 ms28.62 ms2.20 ms25.48 ms29.6x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Async Socks5Getzerodep1.92 ms520.81.72 ms2.60 ms91.9 µs2.06 ms
Sync Socks5Getzerodep1.27 ms789.31.04 ms1.60 ms108.4 µs1.47 ms
Sync Socks5Post JSONzerodep42.00 ms23.841.73 ms42.25 ms89.6 µs42.11 ms
Sync Socks5Streamingzerodep1.27 ms788.01.04 ms1.62 ms113.8 µs1.47 ms

httpserver↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Concurrent Getzerodepflask9.07 ms9.18 ms110.3109.07.03 ms9.86 ms799.4 µs9.70 ms8.64 ms10.45 ms522.5 µs10.35 ms~equal
Concurrent Getzerodepmicrodot9.07 ms9.37 ms110.3106.77.03 ms9.86 ms799.4 µs9.70 ms8.52 ms13.47 ms1.36 ms13.10 ms~equal
Concurrent Getzerodepbottle9.07 ms1.024 s110.31.07.03 ms9.86 ms799.4 µs9.70 ms1.024 s1.025 s644.1 µs1.025 s112.9x faster
Concurrent Postzerodepflask8.42 ms9.83 ms118.8101.87.58 ms11.06 ms940.0 µs10.07 ms9.45 ms10.28 ms168.7 µs10.12 ms1.2x faster
Concurrent Postzerodepmicrodot8.42 ms9.62 ms118.8104.07.58 ms11.06 ms940.0 µs10.07 ms8.60 ms12.94 ms1.24 ms12.53 ms1.1x faster
Concurrent Postzerodepbottle8.42 ms1.024 s118.81.07.58 ms11.06 ms940.0 µs10.07 ms1.024 s1.024 s69.2 µs1.024 s121.6x faster
Get JSONzerodepflask691.9 µs863.5 µs1.4K1.2K504.9 µs930.3 µs79.8 µs807.0 µs669.3 µs1.07 ms82.3 µs956.4 µs1.2x faster
Get JSONzerodepmicrodot691.9 µs692.7 µs1.4K1.4K504.9 µs930.3 µs79.8 µs807.0 µs562.4 µs1.14 ms52.8 µs770.0 µs~equal
Get JSONzerodepbottle691.9 µs633.9 µs1.4K1.6K504.9 µs930.3 µs79.8 µs807.0 µs550.7 µs853.2 µs35.7 µs681.7 µs1.1x slower
Get Textzerodepflask666.3 µs735.1 µs1.5K1.4K512.3 µs862.3 µs76.4 µs789.5 µs644.5 µs1.25 ms58.6 µs867.1 µs1.1x faster
Get Textzerodepmicrodot666.3 µs743.9 µs1.5K1.3K512.3 µs862.3 µs76.4 µs789.5 µs560.9 µs1.12 ms98.8 µs915.7 µs1.1x faster
Get Textzerodepbottle666.3 µs652.0 µs1.5K1.5K512.3 µs862.3 µs76.4 µs789.5 µs528.1 µs865.0 µs68.4 µs792.9 µs~equal
Large Payloadzerodepflask974.0 µs1.27 ms1.0K790.0804.3 µs1.21 ms102.5 µs1.14 ms1.04 ms2.11 ms105.7 µs1.39 ms1.3x faster
Large Payloadzerodepmicrodot974.0 µs1.07 ms1.0K933.5804.3 µs1.21 ms102.5 µs1.14 ms835.8 µs1.53 ms122.8 µs1.30 ms1.1x faster
Large Payloadzerodepbottle974.0 µs1.04 ms1.0K958.0804.3 µs1.21 ms102.5 µs1.14 ms833.5 µs1.67 ms101.8 µs1.19 ms1.1x faster
Post JSONzerodepflask708.9 µs842.9 µs1.4K1.2K553.9 µs1.09 ms104.4 µs902.6 µs737.6 µs1.37 ms37.2 µs895.2 µs1.2x faster
Post JSONzerodepmicrodot708.9 µs874.5 µs1.4K1.1K553.9 µs1.09 ms104.4 µs902.6 µs626.8 µs1.32 ms140.2 µs1.08 ms1.2x faster
Post JSONzerodepbottle708.9 µs815.8 µs1.4K1.2K553.9 µs1.09 ms104.4 µs902.6 µs613.0 µs1.01 ms106.0 µs944.7 µs1.2x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Sync Vs Async Handlerasync_handler641.1 µs1.6K508.4 µs937.9 µs70.4 µs781.2 µs
Sync Vs Async Handlersync_handler790.8 µs1.3K662.5 µs1.12 ms73.4 µs905.0 µs

jsonrpc↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Dispatch Batchzerodepjsonrpcserver141.9 µs2.76 ms7.0K362.3136.9 µs267.5 µs7.4 µs153.2 µs2.68 ms3.04 ms43.4 µs2.84 ms19.5x faster
Dispatch Errorzerodepjsonrpcserver9.4 µs132.9 µs106.7K7.5K8.9 µs61.9 µs1.7 µs9.5 µs124.0 µs254.0 µs10.9 µs153.9 µs14.2x faster
Dispatch Not Foundzerodepjsonrpcserver7.7 µs104.9 µs129.6K9.5K7.3 µs70.9 µs1.5 µs7.8 µs98.5 µs215.1 µs9.1 µs125.2 µs13.6x faster
Dispatch Successzerodepjsonrpcserver7.3 µs141.9 µs136.6K7.0K7.0 µs37.5 µs1.3 µs7.4 µs132.6 µs266.3 µs12.1 µs163.3 µs19.4x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Deserialize From Dictrequest_from_dict912.4 ns1.10M841.0 ns22.1 µs315.9 ns931.0 ns
Deserialize From Dictresponse_from_dict902.9 ns1.11M831.0 ns36.8 µs338.5 ns922.0 ns
Id Generationnext_id99.1 ns10.09M96.9 ns369.4 ns7.8 ns101.4 ns
Json Round Tripjson_round_trip6.5 µs153.6K6.2 µs40.0 µs1.2 µs6.5 µs
Serialize To Dictrequest_to_dict386.5 ns2.59M351.7 ns3.2 µs49.6 ns389.2 ns
Serialize To Dictresponse_to_dict319.4 ns3.13M288.6 ns3.0 µs42.9 ns320.6 ns

jsonschema↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Bench Validate (Large)oursjsonschema86.9 µs11.70 ms11.5K85.582.7 µs216.9 µs5.8 µs98.1 µs11.55 ms12.08 ms100.9 µs11.89 ms134.6x faster
Bench Validate (Medium)oursjsonschema27.6 µs4.01 ms36.2K249.626.7 µs93.8 µs2.8 µs28.1 µs3.90 ms5.21 ms99.2 µs4.10 ms145.0x faster
Perf (Large)zerodepallof-merge (JS)255.7 µs830.1 µs3.9K1.2K247.3 µs338.2 µs8.5 µs267.6 µs660.0 µs3.36 ms236.0 µs1.26 ms3.2x faster
Perf (Medium)zerodepallof-merge (JS)85.4 µs377.6 µs11.7K2.6K80.6 µs164.8 µs5.3 µs96.6 µs291.3 µs864.8 µs75.8 µs524.6 µs4.4x faster
Perf (Small)zerodepallof-merge (JS)32.2 µs187.6 µs31.1K5.3K30.3 µs89.8 µs2.8 µs34.0 µs146.6 µs519.9 µs50.5 µs290.9 µs5.8x faster
Perf Tinyzerodepallof-merge (JS)17.9 µs195.2 µs55.8K5.1K17.2 µs51.7 µs1.7 µs18.3 µs126.6 µs816.2 µs58.3 µs275.4 µs10.9x faster
Perf Xlargezerodepallof-merge (JS)1.69 ms3.25 ms591.0307.81.66 ms1.99 ms27.1 µs1.74 ms3.01 ms5.65 ms455.6 µs4.30 ms1.9x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Bench Resolve Once Vs Every Timeresolve_every_time573.8 µs1.7K549.2 µs1.15 ms37.5 µs591.8 µs
Bench Resolve Once Vs Every Timeresolve_once183.5 µs5.4K178.0 µs396.4 µs9.0 µs192.6 µs

jsonx↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Fixture Load Eslint Configzerodepcommentjson860.8 µs59.85 ms1.2K16.7837.1 µs1.21 ms18.6 µs879.1 µs53.74 ms150.91 ms22.73 ms150.91 ms69.5x faster
Fixture Load Tsconfigzerodepcommentjson277.0 µs16.79 ms3.6K59.6269.7 µs428.4 µs9.9 µs287.8 µs16.35 ms17.17 ms208.7 µs17.12 ms60.6x faster
Fixture Load Vscode Settingszerodepcommentjson595.4 µs33.34 ms1.7K30.0577.9 µs1.11 ms23.1 µs611.2 µs30.35 ms108.21 ms13.67 ms31.97 ms56.0x faster
Jsonl (Large)zerodepjsonlines1.94 ms3.72 ms514.3269.11.46 ms79.99 ms5.76 ms1.57 ms3.38 ms77.52 ms4.51 ms3.55 ms1.9x faster
Jsonl (Large)zerodepndjson1.94 ms1.84 ms514.3543.51.46 ms79.99 ms5.76 ms1.57 ms1.45 ms78.87 ms5.19 ms1.52 ms1.1x slower
Jsonl (Medium)zerodepjsonlines96.7 µs287.3 µs10.3K3.5K92.9 µs221.7 µs6.3 µs106.5 µs277.3 µs385.6 µs11.0 µs301.3 µs3.0x faster
Jsonl (Medium)zerodepndjson96.7 µs99.6 µs10.3K10.0K92.9 µs221.7 µs6.3 µs106.5 µs95.3 µs240.9 µs8.0 µs110.0 µs~equal
Jsonl (Small)zerodepjsonlines8.3 µs30.8 µs120.1K32.4K8.0 µs69.3 µs1.1 µs8.4 µs29.7 µs109.4 µs3.1 µs33.1 µs3.7x faster
Jsonl (Small)zerodepndjson8.3 µs10.7 µs120.1K93.3K8.0 µs69.3 µs1.1 µs8.4 µs10.3 µs58.3 µs1.5 µs10.8 µs1.3x faster
Load (Large)zerodepcommentjson2.02 ms223.99 ms494.64.52.00 ms2.29 ms25.4 µs2.07 ms194.61 ms286.49 ms44.21 ms286.49 ms110.8x faster
Load (Medium)zerodepcommentjson100.9 µs9.20 ms9.9K108.797.8 µs199.6 µs5.3 µs111.0 µs9.04 ms10.90 ms193.4 µs9.39 ms91.1x faster
Load (Small)zerodepcommentjson16.3 µs1.35 ms61.2K738.915.8 µs94.0 µs1.7 µs16.3 µs1.15 ms78.18 ms3.02 ms1.36 ms82.8x faster

llmstxt↗

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Candidate Urlszerodep12.9 µs77.3K12.5 µs74.9 µs1.4 µs13.0 µs
Parse (Large)zerodep1.18 ms844.41.15 ms1.57 ms31.4 µs1.22 ms
Parse (Medium)zerodep49.6 µs20.2K48.0 µs160.9 µs3.2 µs59.0 µs
Parse (Small)zerodep12.1 µs82.7K11.5 µs97.4 µs1.6 µs12.2 µs

markdown↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Render (Large)zerodepmistune6.33 ms13.13 ms157.976.16.24 ms7.10 ms99.4 µs6.41 ms12.98 ms13.59 ms91.2 µs13.29 ms2.1x faster
Render (Medium)zerodepmistune403.3 µs899.0 µs2.5K1.1K386.8 µs536.7 µs12.1 µs419.4 µs866.6 µs1.01 ms19.0 µs926.2 µs2.2x faster
Render (Small)zerodepmistune56.4 µs107.2 µs17.7K9.3K53.1 µs122.2 µs4.3 µs67.5 µs101.9 µs152.5 µs7.1 µs123.7 µs1.9x faster
Render GFMLargezerodepmistune7.29 ms13.51 ms137.274.07.17 ms7.51 ms62.9 µs7.41 ms13.37 ms13.74 ms87.4 µs13.70 ms1.9x faster
Render GFMMediumzerodepmistune356.6 µs788.9 µs2.8K1.3K343.0 µs463.4 µs11.1 µs372.3 µs756.2 µs931.3 µs19.7 µs816.3 µs2.2x faster

multipart↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Fixture Parse Form With Filezerodeppython-multipart59.1 µs112.4 µs16.9K8.9K55.5 µs130.8 µs4.3 µs71.1 µs107.2 µs193.1 µs5.7 µs124.5 µs1.9x faster
Fixture Parse Large Binaryzerodeppython-multipart95.9 µs128.4 µs10.4K7.8K91.3 µs166.8 µs5.6 µs108.7 µs122.8 µs204.0 µs6.7 µs140.8 µs1.3x faster
Fixture Parse Mixed Charsetszerodeppython-multipart41.2 µs84.4 µs24.2K11.8K38.4 µs156.7 µs5.2 µs47.1 µs80.4 µs157.3 µs5.5 µs96.3 µs2.0x faster
Parse (Large)zerodeppython-multipart520.0 µs333.6 µs1.9K3.0K504.5 µs627.0 µs12.8 µs540.0 µs319.7 µs605.3 µs15.9 µs350.3 µs1.6x slower
Parse (Medium)zerodeppython-multipart68.8 µs115.2 µs14.5K8.7K61.1 µs433.3 µs20.1 µs93.3 µs106.1 µs381.5 µs19.2 µs136.4 µs1.7x faster
Parse (Small)zerodeppython-multipart22.4 µs50.8 µs44.7K19.7K21.1 µs77.2 µs2.7 µs23.5 µs47.1 µs140.6 µs7.1 µs62.2 µs2.3x faster
Scale Curveparse_zerodep[100B]python-multipart12.2 µs33.0 µs81.6K30.3K11.6 µs61.3 µs2.0 µs12.9 µs30.7 µs72.9 µs3.1 µs36.3 µs2.7x faster
Scale Curveparse_zerodep[500B]python-multipart12.8 µs33.3 µs78.4K30.0K12.0 µs107.9 µs2.2 µs13.3 µs30.9 µs1.38 ms10.8 µs36.7 µs2.6x faster
Scale Curveparse_zerodep[1KB]python-multipart23.5 µs53.3 µs42.6K18.8K22.2 µs74.8 µs2.7 µs25.4 µs50.4 µs105.0 µs4.0 µs64.5 µs2.3x faster
Scale Curveparse_zerodep[5KB]python-multipart57.2 µs104.1 µs17.5K9.6K54.5 µs127.4 µs4.3 µs68.9 µs99.3 µs169.8 µs5.7 µs116.3 µs1.8x faster
Scale Curveparse_zerodep[10KB]python-multipart64.3 µs105.9 µs15.6K9.4K61.1 µs134.5 µs4.6 µs76.3 µs101.2 µs223.9 µs6.2 µs117.8 µs1.6x faster
Scale Curveparse_zerodep[50KB]python-multipart167.9 µs200.9 µs6.0K5.0K162.1 µs262.3 µs7.3 µs180.4 µs192.7 µs323.5 µs8.1 µs213.1 µs1.2x faster
Scale Curveparse_zerodep[100KB]python-multipart236.4 µs217.6 µs4.2K4.6K227.9 µs414.9 µs11.7 µs251.5 µs208.9 µs418.7 µs9.3 µs230.0 µs1.1x slower
Scale Curveparse_zerodep[500KB]python-multipart869.7 µs506.5 µs1.1K2.0K846.9 µs960.4 µs12.8 µs889.2 µs484.6 µs2.37 ms53.6 µs528.6 µs1.7x slower
Scale Curveencode_zerodep[100B]python-multipart2.5 µs33.0 µs401.4K30.3K2.4 µs56.5 µs668.4 ns2.5 µs30.7 µs72.9 µs3.1 µs36.3 µs13.2x faster
Scale Curveencode_zerodep[500B]python-multipart2.6 µs33.3 µs387.9K30.0K2.4 µs45.1 µs664.6 ns2.6 µs30.9 µs1.38 ms10.8 µs36.7 µs12.9x faster
Scale Curveencode_zerodep[1KB]python-multipart3.5 µs53.3 µs287.1K18.8K3.3 µs41.9 µs768.7 ns3.5 µs50.4 µs105.0 µs4.0 µs64.5 µs15.3x faster
Scale Curveencode_zerodep[5KB]python-multipart5.8 µs104.1 µs171.5K9.6K5.6 µs45.3 µs985.0 ns5.9 µs99.3 µs169.8 µs5.7 µs116.3 µs17.9x faster
Scale Curveencode_zerodep[10KB]python-multipart6.2 µs105.9 µs161.7K9.4K5.8 µs44.2 µs1.0 µs6.7 µs101.2 µs223.9 µs6.2 µs117.8 µs17.1x faster
Scale Curveencode_zerodep[50KB]python-multipart12.8 µs200.9 µs78.2K5.0K11.6 µs52.1 µs2.4 µs14.1 µs192.7 µs323.5 µs8.1 µs213.1 µs15.7x faster
Scale Curveencode_zerodep[100KB]python-multipart15.8 µs217.6 µs63.1K4.6K14.9 µs48.5 µs2.2 µs18.5 µs208.9 µs418.7 µs9.3 µs230.0 µs13.7x faster
Scale Curveencode_zerodep[500KB]python-multipart56.5 µs506.5 µs17.7K2.0K53.9 µs108.6 µs4.3 µs66.2 µs484.6 µs2.37 ms53.6 µs528.6 µs9.0x faster
Scale Curveroundtrip_zerodep[100B]python-multipart14.7 µs33.0 µs68.1K30.3K13.5 µs53.4 µs2.3 µs15.8 µs30.7 µs72.9 µs3.1 µs36.3 µs2.2x faster
Scale Curveroundtrip_zerodep[500B]python-multipart16.0 µs33.3 µs62.4K30.0K14.9 µs72.6 µs2.3 µs17.3 µs30.9 µs1.38 ms10.8 µs36.7 µs2.1x faster
Scale Curveroundtrip_zerodep[1KB]python-multipart28.3 µs53.3 µs35.4K18.8K26.0 µs83.5 µs3.2 µs31.1 µs50.4 µs105.0 µs4.0 µs64.5 µs1.9x faster
Scale Curveroundtrip_zerodep[5KB]python-multipart67.0 µs104.1 µs14.9K9.6K62.1 µs1.99 ms21.1 µs79.7 µs99.3 µs169.8 µs5.7 µs116.3 µs1.6x faster
Scale Curveroundtrip_zerodep[10KB]python-multipart73.5 µs105.9 µs13.6K9.4K69.4 µs144.3 µs5.2 µs86.6 µs101.2 µs223.9 µs6.2 µs117.8 µs1.4x faster
Scale Curveroundtrip_zerodep[50KB]python-multipart187.6 µs200.9 µs5.3K5.0K178.6 µs283.9 µs8.4 µs201.4 µs192.7 µs323.5 µs8.1 µs213.1 µs1.1x faster
Scale Curveroundtrip_zerodep[100KB]python-multipart257.7 µs217.6 µs3.9K4.6K247.4 µs465.6 µs13.1 µs273.1 µs208.9 µs418.7 µs9.3 µs230.0 µs1.2x slower
Scale Curveroundtrip_zerodep[500KB]python-multipart945.7 µs506.5 µs1.1K2.0K921.1 µs1.02 ms12.3 µs968.2 µs484.6 µs2.37 ms53.6 µs528.6 µs1.9x slower

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Encode (Large)zerodep44.6 µs22.4K40.5 µs340.6 µs12.3 µs56.4 µs
Encode (Medium)zerodep7.8 µs128.5K7.3 µs46.0 µs1.2 µs7.9 µs
Encode (Small)zerodep4.0 µs252.0K3.8 µs34.4 µs712.2 ns4.0 µs
Round Tripsmall25.7 µs38.9K24.0 µs158.1 µs3.6 µs28.0 µs
Round Tripmedium79.1 µs12.6K74.8 µs141.3 µs5.4 µs92.7 µs

persistdict↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Iterate (Small)zerodep_jsonsh502.9 µs201.4 µs2.0K5.0K438.7 µs7.01 ms212.9 µs563.5 µs193.0 µs299.2 µs10.5 µs219.0 µs2.5x slower
Iterate (Small)zerodep_jsonsqlitedict502.9 µs1.34 ms2.0K744.1438.7 µs7.01 ms212.9 µs563.5 µs1.22 ms1.93 ms70.9 µs1.42 ms2.7x faster
Iterate (Small)zerodep_sqlitesh888.0 µs201.4 µs1.1K5.0K847.6 µs1.15 ms21.3 µs921.4 µs193.0 µs299.2 µs10.5 µs219.0 µs4.4x slower
Iterate (Small)zerodep_sqlitesqlitedict888.0 µs1.34 ms1.1K744.1847.6 µs1.15 ms21.3 µs921.4 µs1.22 ms1.93 ms70.9 µs1.42 ms1.5x faster
Read (Small)zerodep_jsonsh495.6 µs179.7 µs2.0K5.6K423.8 µs4.67 ms173.0 µs564.9 µs172.3 µs299.3 µs9.7 µs197.2 µs2.8x slower
Read (Small)zerodep_jsonsqlitedict495.6 µs10.16 ms2.0K98.4423.8 µs4.67 ms173.0 µs564.9 µs9.60 ms12.46 ms384.9 µs10.70 ms20.5x faster
Read (Small)zerodep_sqlitesh848.3 µs179.7 µs1.2K5.6K811.6 µs1.29 ms21.9 µs878.0 µs172.3 µs299.3 µs9.7 µs197.2 µs4.7x slower
Read (Small)zerodep_sqlitesqlitedict848.3 µs10.16 ms1.2K98.4811.6 µs1.29 ms21.9 µs878.0 µs9.60 ms12.46 ms384.9 µs10.70 ms12.0x faster
Write (Large)zerodep_jsonsh13.70 ms10.97 ms73.091.213.53 ms14.07 ms96.6 µs13.86 ms10.70 ms13.14 ms408.8 µs11.76 ms1.2x slower
Write (Large)zerodep_jsonsqlitedict13.70 ms869.40 ms73.01.213.53 ms14.07 ms96.6 µs13.86 ms738.94 ms929.93 ms76.14 ms929.93 ms63.4x faster
Write (Large)zerodep_sqlitesh78.26 ms10.97 ms12.891.275.11 ms85.55 ms2.75 ms85.55 ms10.70 ms13.14 ms408.8 µs11.76 ms7.1x slower
Write (Large)zerodep_sqlitesqlitedict78.26 ms869.40 ms12.81.275.11 ms85.55 ms2.75 ms85.55 ms738.94 ms929.93 ms76.14 ms929.93 ms11.1x faster
Write (Large)zerodep_sqlite_batchedsh21.78 ms10.97 ms45.991.220.96 ms24.19 ms868.2 µs23.88 ms10.70 ms13.14 ms408.8 µs11.76 ms2.0x slower
Write (Large)zerodep_sqlite_batchedsqlitedict21.78 ms869.40 ms45.91.220.96 ms24.19 ms868.2 µs23.88 ms738.94 ms929.93 ms76.14 ms929.93 ms39.9x faster
Write (Small)zerodep_jsonsh424.0 µs411.4 µs2.4K2.4K395.9 µs1.84 ms47.2 µs479.4 µs381.4 µs473.7 µs25.6 µs473.7 µs~equal
Write (Small)zerodep_jsonsqlitedict424.0 µs18.93 ms2.4K52.8395.9 µs1.84 ms47.2 µs479.4 µs18.36 ms23.86 ms913.1 µs20.10 ms44.6x faster
Write (Small)zerodep_sqlitesh4.71 ms411.4 µs212.42.4K4.28 ms7.41 ms540.9 µs5.43 ms381.4 µs473.7 µs25.6 µs473.7 µs11.4x slower
Write (Small)zerodep_sqlitesqlitedict4.71 ms18.93 ms212.452.84.28 ms7.41 ms540.9 µs5.43 ms18.36 ms23.86 ms913.1 µs20.10 ms4.0x faster
Write (Small)zerodep_sqlite_batchedsh2.97 ms411.4 µs336.42.4K2.63 ms8.17 ms514.3 µs3.44 ms381.4 µs473.7 µs25.6 µs473.7 µs7.2x slower
Write (Small)zerodep_sqlite_batchedsqlitedict2.97 ms18.93 ms336.452.82.63 ms8.17 ms514.3 µs3.44 ms18.36 ms23.86 ms913.1 µs20.10 ms6.4x faster

png↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Decode Bmp Medium RGBzerodepPillow615.6 µs97.1 µs1.6K10.3K593.8 µs1.16 ms35.8 µs631.2 µs91.7 µs155.5 µs6.5 µs111.5 µs6.3x slower
Decode Large RGBAzerodepPillow475.24 ms21.20 ms2.147.2471.12 ms479.10 ms3.55 ms479.10 ms21.14 ms21.39 ms51.7 µs21.29 ms22.4x slower
Decode Medium GrayzerodepPillow5.94 ms288.9 µs168.53.5K5.84 ms6.16 ms42.1 µs5.99 ms279.2 µs408.9 µs9.6 µs301.4 µs20.5x slower
Decode Medium RGBzerodepPillow22.74 ms1.01 ms44.0991.022.30 ms23.36 ms232.1 µs23.19 ms1.00 ms1.21 ms10.7 µs1.02 ms22.5x slower
Decode Medium RGBAzerodepPillow26.24 ms1.24 ms38.1806.025.75 ms26.98 ms227.2 µs26.51 ms1.23 ms1.37 ms16.6 µs1.27 ms21.2x slower
Decode Small RGBAzerodepPillow1.52 ms62.7 µs659.415.9K1.49 ms1.62 ms20.1 µs1.55 ms58.2 µs165.4 µs6.4 µs78.0 µs24.2x slower
Encode Bmp Medium RGBzerodepPillow585.9 µs85.3 µs1.7K11.7K560.8 µs862.8 µs18.0 µs635.4 µs81.1 µs145.0 µs6.0 µs97.7 µs6.9x slower
Encode Large RGBAzerodepPillow3.758 s175.74 ms0.35.73.731 s3.775 s18.59 ms3.775 s175.37 ms176.57 ms418.0 µs176.57 ms21.4x slower
Encode Medium RGBAzerodepPillow235.25 ms10.79 ms4.392.7232.57 ms238.00 ms2.19 ms238.00 ms10.73 ms10.90 ms31.4 µs10.85 ms21.8x slower
Encode Small RGBAzerodepPillow13.99 ms527.2 µs71.51.9K13.89 ms14.18 ms63.6 µs14.10 ms512.7 µs600.6 µs10.2 µs542.8 µs26.5x slower
Matrix Round Tripzerodep_encodePillow86.80 ms2.55 ms11.5392.286.37 ms87.46 ms336.9 µs87.46 ms2.53 ms2.82 ms20.5 µs2.58 ms34.0x slower
Matrix Round Tripzerodep_encodePillow86.80 ms273.5 µs11.53.7K86.37 ms87.46 ms336.9 µs87.46 ms247.8 µs351.9 µs11.0 µs290.9 µs317.4x slower
Matrix Round Tripzerodep_decodePillow16.60 ms2.55 ms60.2392.216.36 ms16.97 ms123.3 µs16.81 ms2.53 ms2.82 ms20.5 µs2.58 ms6.5x slower
Matrix Round Tripzerodep_decodePillow16.60 ms273.5 µs60.23.7K16.36 ms16.97 ms123.3 µs16.81 ms247.8 µs351.9 µs11.0 µs290.9 µs60.7x slower

profiler↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Multi Thread Overheadzerodep_tracing_multithreadyappi1.06 ms1.05 ms946.1951.6980.1 µs1.57 ms42.7 µs1.13 ms981.6 µs1.42 ms40.3 µs1.13 ms~equal
Output Generationzerodep_textpyinstrument30.3 µs7.5 µs33.0K132.8K29.1 µs84.5 µs2.9 µs32.9 µs7.1 µs47.2 µs1.5 µs7.6 µs4.0x slower
Output Generationzerodep_textpyinstrument30.3 µs150.2 µs33.0K6.7K29.1 µs84.5 µs2.9 µs32.9 µs138.7 µs2.28 ms46.1 µs173.2 µs5.0x faster
Output Generationzerodep_htmlpyinstrument24.8 µs7.5 µs40.4K132.8K23.8 µs92.9 µs2.7 µs26.3 µs7.1 µs47.2 µs1.5 µs7.6 µs3.3x slower
Output Generationzerodep_htmlpyinstrument24.8 µs150.2 µs40.4K6.7K23.8 µs92.9 µs2.7 µs26.3 µs138.7 µs2.28 ms46.1 µs173.2 µs6.1x faster
Profiler Overheadzerodepraw_cprofile215.5 µs186.0 µs4.6K5.4K205.8 µs353.0 µs10.2 µs231.8 µs178.3 µs306.5 µs7.6 µs198.3 µs1.2x slower
Profiler Overheadzerodeppyinstrument215.5 µs307.8 µs4.6K3.2K205.8 µs353.0 µs10.2 µs231.8 µs293.7 µs404.2 µs11.1 µs324.0 µs1.4x faster
Tracing Profiler Overheadzerodep_tracingyappi191.5 µs231.0 µs5.2K4.3K184.6 µs285.8 µs7.3 µs202.6 µs216.4 µs394.6 µs14.0 µs254.2 µs1.2x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Tracing Output Generationzerodep_tracing_text10.7 µs93.9K10.2 µs57.3 µs1.6 µs10.8 µs
Tracing Output Generationzerodep_tracing_html_table15.1 µs66.4K14.2 µs95.3 µs2.3 µs16.0 µs
Tracing Output Generationzerodep_tracing_html_flamegraph17.6 µs56.8K15.8 µs1.89 ms18.1 µs20.0 µs

protobuf↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Decode Comparisonzerodep_largegoogle (protobuf)322.4 µs4.6 µs3.1K216.7K311.9 µs483.4 µs18.9 µs336.0 µs4.4 µs99.1 µs1.6 µs4.6 µs69.9x slower
Decode Comparisonzerodep_mediumgoogle (protobuf)44.6 µs1.3 µs22.4K748.5K42.7 µs103.3 µs2.9 µs47.9 µs1.3 µs114.7 µs1.1 µs1.3 µs33.4x slower
Decode Comparisonzerodep_smallgoogle (protobuf)4.6 µs789.1 ns215.5K1.27M4.4 µs36.2 µs783.8 ns4.7 µs671.0 ns943.9 µs2.8 µs782.0 ns5.9x slower
Encode Comparisonzerodep_largegoogle (protobuf)124.1 µs2.5 µs8.1K404.9K119.6 µs229.1 µs5.6 µs134.4 µs2.4 µs82.6 µs582.8 ns2.5 µs50.2x slower
Encode Comparisonzerodep_mediumgoogle (protobuf)18.8 µs451.6 ns53.3K2.21M17.7 µs60.5 µs1.7 µs19.0 µs411.0 ns14.8 µs201.2 ns461.0 ns41.6x slower
Encode Comparisonzerodep_smallgoogle (protobuf)2.0 µs304.6 ns493.1K3.28M1.9 µs42.5 µs567.9 ns2.1 µs260.0 ns21.4 µs176.7 ns320.0 ns6.7x slower
Roundtrip Comparisonzerodep_largegoogle (protobuf)455.9 µs7.0 µs2.2K143.8K437.7 µs1.04 ms31.8 µs474.7 µs6.7 µs121.5 µs2.1 µs6.9 µs65.6x slower
Roundtrip Comparisonzerodep_mediumgoogle (protobuf)64.9 µs1.8 µs15.4K564.2K61.5 µs144.6 µs4.3 µs74.9 µs1.6 µs114.2 µs1.1 µs1.8 µs36.6x slower
Roundtrip Comparisonzerodep_smallgoogle (protobuf)6.8 µs1.0 µs147.2K988.1K6.3 µs49.9 µs1.1 µs6.9 µs951.0 ns79.1 µs740.8 ns1.0 µs6.7x slower
Scale Curvedecode_zerodep[100items]google (protobuf)41.4 µs1.1 µs24.2K890.4K39.9 µs112.0 µs3.3 µs44.5 µs1.1 µs14.9 µs370.3 ns1.1 µs36.8x slower
Scale Curvedecode_zerodep[10items]google (protobuf)10.5 µs828.1 ns94.8K1.21M10.0 µs155.4 µs1.6 µs10.6 µs761.0 ns173.7 µs807.3 ns842.0 ns12.7x slower
Scale Curvedecode_zerodep[10Kitems]google (protobuf)5.56 ms59.3 µs179.916.9K5.46 ms6.48 ms97.4 µs5.65 ms57.8 µs151.6 µs4.2 µs67.3 µs93.7x slower
Scale Curvedecode_zerodep[1Kitems]google (protobuf)542.1 µs6.8 µs1.8K146.8K523.7 µs896.0 µs13.4 µs552.2 µs6.4 µs97.8 µs1.8 µs6.8 µs79.6x slower
Scale Curvedecode_zerodep[500items]google (protobuf)258.4 µs3.8 µs3.9K263.5K249.4 µs493.7 µs9.4 µs267.8 µs3.6 µs94.6 µs1.4 µs3.8 µs68.1x slower
Scale Curvedecode_zerodep[50items]google (protobuf)24.3 µs911.2 ns41.1K1.10M23.5 µs86.1 µs2.0 µs24.8 µs856.5 ns13.1 µs331.0 ns915.2 ns26.7x slower
Scale Curvedecode_zerodep[50Kitems]google (protobuf)33.50 ms329.9 µs29.93.0K33.13 ms33.92 ms179.7 µs33.88 ms317.5 µs488.4 µs12.3 µs344.8 µs101.5x slower
Scale Curvedecode_zerodep[5Kitems]google (protobuf)2.79 ms30.6 µs358.632.7K2.70 ms5.15 ms242.7 µs3.00 ms29.3 µs133.7 µs3.5 µs31.7 µs91.2x slower
Scale Curveencode_zerodep[100items]google (protobuf)17.4 µs308.9 ns57.5K3.24M16.6 µs72.7 µs1.7 µs17.7 µs297.4 ns4.5 µs45.1 ns310.6 ns56.3x slower
Scale Curveencode_zerodep[10items]google (protobuf)5.6 µs231.7 ns179.6K4.32M5.3 µs32.7 µs901.5 ns5.6 µs201.7 ns4.1 µs35.3 ns235.9 ns24.0x slower
Scale Curveencode_zerodep[10Kitems]google (protobuf)1.87 ms73.3 µs534.513.6K1.84 ms2.29 ms28.5 µs1.91 ms72.2 µs136.7 µs3.1 µs81.4 µs25.5x slower
Scale Curveencode_zerodep[1Kitems]google (protobuf)187.0 µs7.0 µs5.3K143.4K181.0 µs360.6 µs7.3 µs196.4 µs6.8 µs60.3 µs937.7 ns6.9 µs26.8x slower
Scale Curveencode_zerodep[500items]google (protobuf)93.0 µs3.3 µs10.8K304.8K89.6 µs181.0 µs4.5 µs101.9 µs3.2 µs44.7 µs556.7 ns3.3 µs28.3x slower
Scale Curveencode_zerodep[50items]google (protobuf)10.8 µs275.8 ns92.2K3.63M10.3 µs51.9 µs1.5 µs10.9 µs235.2 ns2.9 µs39.2 ns283.7 ns39.3x slower
Scale Curveencode_zerodep[50Kitems]google (protobuf)12.95 ms400.0 µs77.22.5K12.81 ms13.94 ms180.1 µs13.22 ms392.8 µs502.0 µs7.3 µs408.6 µs32.4x slower
Scale Curveencode_zerodep[5Kitems]google (protobuf)937.4 µs36.7 µs1.1K27.2K913.3 µs1.39 ms29.6 µs951.6 µs36.0 µs101.1 µs2.4 µs39.2 µs25.5x slower

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Scale Curveroundtrip_zerodep[100items]60.1 µs16.6K57.2 µs238.0 µs6.4 µs69.8 µs
Scale Curveroundtrip_zerodep[10items]16.8 µs59.6K15.8 µs60.2 µs1.9 µs17.5 µs
Scale Curveroundtrip_zerodep[10Kitems]7.54 ms132.77.39 ms8.71 ms136.6 µs7.67 ms
Scale Curveroundtrip_zerodep[1Kitems]740.9 µs1.3K721.5 µs951.0 µs13.5 µs752.1 µs
Scale Curveroundtrip_zerodep[500items]358.3 µs2.8K345.3 µs3.53 ms65.0 µs366.6 µs
Scale Curveroundtrip_zerodep[50items]35.8 µs27.9K34.2 µs92.1 µs2.7 µs37.2 µs
Scale Curveroundtrip_zerodep[50Kitems]46.50 ms21.546.05 ms46.87 ms191.9 µs46.81 ms
Scale Curveroundtrip_zerodep[5Kitems]3.74 ms267.53.68 ms3.99 ms32.5 µs3.79 ms
test_decode_largedecode_large318.5 µs3.1K306.6 µs478.4 µs9.9 µs330.5 µs
test_decode_mediumdecode_medium44.3 µs22.6K42.1 µs121.4 µs3.3 µs48.3 µs
test_decode_smalldecode_small4.7 µs213.9K4.5 µs30.5 µs779.8 ns4.7 µs
test_encode_largeencode_large125.7 µs8.0K121.2 µs210.3 µs6.2 µs136.0 µs
test_encode_mediumencode_medium19.0 µs52.6K18.2 µs107.4 µs1.7 µs19.2 µs
test_encode_smallencode_small2.0 µs494.0K1.9 µs33.1 µs664.1 ns2.1 µs
test_from_dict_largefrom_dict_large166.9 µs6.0K160.9 µs359.2 µs12.6 µs176.3 µs
test_roundtrip_largeroundtrip_large456.0 µs2.2K440.4 µs537.4 µs10.3 µs469.2 µs
test_roundtrip_mediumroundtrip_medium65.7 µs15.2K62.7 µs129.5 µs4.1 µs75.9 µs
test_roundtrip_smallroundtrip_small6.8 µs147.4K6.4 µs40.4 µs1.2 µs6.9 µs
test_to_dict_largeto_dict_large106.1 µs9.4K102.8 µs249.7 µs7.4 µs115.1 µs

qr↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Encode Binaryzerodepqrcode33.61 ms43.23 ms29.823.133.32 ms33.88 ms143.2 µs33.82 ms42.95 ms45.30 ms494.8 µs43.60 ms1.3x faster
Encode High Ecczerodepqrcode6.32 ms6.18 ms158.3161.76.26 ms6.64 ms42.7 µs6.38 ms6.08 ms10.29 ms348.0 µs6.26 ms~equal
Encode Large Datazerodepqrcode33.74 ms46.88 ms29.621.333.47 ms34.05 ms195.2 µs34.05 ms46.64 ms47.21 ms162.4 µs47.17 ms1.4x faster
Encode Longzerodepqrcode10.66 ms11.73 ms93.885.210.51 ms10.88 ms69.7 µs10.77 ms11.66 ms12.12 ms59.5 µs11.81 ms1.1x faster
Encode Numericzerodepqrcode4.18 ms4.00 ms239.4250.04.13 ms4.40 ms29.8 µs4.23 ms3.95 ms4.35 ms35.1 µs4.05 ms~equal
Encode Shortzerodepqrcode2.29 ms1.77 ms437.0564.92.25 ms2.67 ms26.5 µs2.33 ms1.74 ms1.97 ms17.8 µs1.80 ms1.3x slower
Encode URLzerodepqrcode5.20 ms4.98 ms192.5200.75.13 ms6.34 ms91.4 µs5.25 ms4.94 ms5.25 ms35.5 µs5.05 ms~equal

ratelimit↗

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
composite_mixed_acquirecomposite_mixed_acquire7.8 µs128.4K7.0 µs53.0 µs1.4 µs7.9 µs
composite_two_buckets_acquirecomposite_two_buckets_acquire8.0 µs124.8K7.6 µs48.8 µs1.3 µs8.1 µs
fixed_window_acquirefixed_window_acquire1.2 µs842.5K781.0 ns21.5 µs398.2 ns1.2 µs
fixed_window_hitlimits3.7 µs269.2K3.4 µs208.4 µs2.7 µs3.7 µs
fixed_window_peekfixed_window_peek1.3 µs796.3K1.1 µs1.30 ms3.8 µs1.3 µs
fixed_window_testlimits2.1 µs475.8K2.0 µs67.3 µs632.0 ns2.1 µs
gcra_acquiregcra_acquire1.2 µs834.2K1.1 µs40.2 µs427.6 ns1.3 µs
moving_window_hitlimits4.0 µs249.2K3.0 µs8.79 ms50.4 µs5.1 µs
sliding_window_acquiresliding_window_acquire1.6 µs632.4K1.5 µs42.6 µs541.7 ns1.6 µs
sliding_window_hitlimits6.4 µs156.4K4.3 µs278.4 µs4.1 µs7.1 µs
token_bucket_acquiretoken_bucket_acquire1.2 µs820.6K1.1 µs25.7 µs411.3 ns1.3 µs
token_bucket_peektoken_bucket_peek1.5 µs682.6K1.4 µs33.1 µs430.4 ns1.5 µs

readability↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Largezerodepreadability-lxml33.90 ms28.00 ms29.535.732.61 ms34.72 ms581.1 µs34.69 ms27.40 ms30.20 ms702.2 µs29.89 ms1.2x slower
LargezerodepMozilla Readability.js33.90 ms638.24 ms29.51.632.61 ms34.72 ms581.1 µs34.69 ms606.50 ms703.37 ms38.91 ms703.37 ms18.8x faster
Mediumzerodepreadability-lxml2.76 ms3.30 ms362.9302.92.65 ms3.22 ms97.1 µs2.87 ms3.21 ms3.69 ms55.5 µs3.37 ms1.2x faster
MediumzerodepMozilla Readability.js2.76 ms26.16 ms362.938.22.65 ms3.22 ms97.1 µs2.87 ms18.99 ms45.01 ms6.66 ms45.01 ms9.5x faster
Smallzerodepreadability-lxml294.9 µs743.6 µs3.4K1.3K258.0 µs19.23 ms468.2 µs360.7 µs702.6 µs1.55 ms50.4 µs770.6 µs2.5x faster
SmallzerodepMozilla Readability.js294.9 µs16.32 ms3.4K61.3258.0 µs19.23 ms468.2 µs360.7 µs11.41 ms22.35 ms3.71 ms22.35 ms55.3x faster
Synthetic (Large)zerodepreadability-lxml5.22 ms15.11 ms191.866.25.02 ms6.16 ms218.7 µs5.93 ms14.64 ms19.03 ms567.0 µs15.47 ms2.9x faster
Synthetic (Large)zerodepMozilla Readability.js5.22 ms43.71 ms191.822.95.02 ms6.16 ms218.7 µs5.93 ms41.68 ms45.95 ms1.28 ms45.80 ms8.4x faster
Synthetic (Medium)zerodepreadability-lxml1.07 ms2.67 ms935.9374.71.03 ms1.40 ms50.9 µs1.15 ms2.57 ms4.51 ms134.7 µs2.73 ms2.5x faster
Synthetic (Medium)zerodepMozilla Readability.js1.07 ms12.43 ms935.980.51.03 ms1.40 ms50.9 µs1.15 ms10.49 ms16.94 ms1.65 ms15.31 ms11.6x faster
Synthetic (Small)zerodepreadability-lxml436.6 µs804.8 µs2.3K1.2K401.7 µs892.0 µs38.7 µs524.1 µs765.7 µs957.8 µs18.7 µs831.1 µs1.8x faster
Synthetic (Small)zerodepMozilla Readability.js436.6 µs8.34 ms2.3K119.9401.7 µs892.0 µs38.7 µs524.1 µs6.34 ms18.38 ms2.26 ms12.58 ms19.1x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Is Probably Readablezerodep1.64 ms609.81.50 ms2.68 ms204.8 µs2.27 ms

retry↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Backoff Calculationzerodeptenacity4.0 µs14.4 µs252.2K69.4K3.6 µs40.5 µs774.0 ns4.1 µs13.8 µs74.1 µs1.4 µs14.5 µs3.6x faster
Decorator Overheadzerodeptenacity273.1 ns19.5 µs3.66M51.3K260.5 ns2.6 µs37.8 ns275.0 ns16.2 µs1.21 ms19.6 µs21.2 µs71.4x faster
Retry With Failureszerodeptenacity247.8 µs318.6 µs4.0K3.1K235.2 µs332.2 µs3.6 µs252.5 µs268.5 µs534.7 µs16.1 µs327.6 µs1.3x faster

runner↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Env Passingzerodepsh11.44 ms71.08 ms87.414.111.31 ms11.86 ms101.4 µs11.65 ms69.48 ms73.81 ms1.25 ms73.81 ms6.2x faster
Env Passingzerodepsubprocess11.44 ms11.25 ms87.488.911.31 ms11.86 ms101.4 µs11.65 ms11.08 ms11.71 ms129.3 µs11.54 ms~equal
Output Capturezerodepsh11.15 ms70.95 ms89.714.110.99 ms11.61 ms125.9 µs11.48 ms69.07 ms74.20 ms1.55 ms74.20 ms6.4x faster
Output Capturezerodepsubprocess11.15 ms11.06 ms89.790.410.99 ms11.61 ms125.9 µs11.48 ms10.93 ms11.30 ms63.1 µs11.13 ms~equal
Simple Commandzerodepsh2.02 ms58.57 ms495.317.11.96 ms2.21 ms40.7 µs2.11 ms57.33 ms59.96 ms724.5 µs59.96 ms29.0x faster
Simple Commandzerodepsubprocess2.02 ms911.0 µs495.31.1K1.96 ms2.21 ms40.7 µs2.11 ms850.7 µs1.33 ms37.5 µs992.5 µs2.2x slower
Stdin Inputzerodepsh11.13 ms70.08 ms89.814.310.98 ms11.62 ms108.1 µs11.38 ms68.77 ms71.96 ms1.15 ms71.96 ms6.3x faster
Stdin Inputzerodepsubprocess11.13 ms11.08 ms89.890.210.98 ms11.62 ms108.1 µs11.38 ms10.89 ms11.67 ms95.2 µs11.26 ms~equal
Streaming Lineszerodepsh11.15 ms71.11 ms89.714.110.99 ms11.99 ms183.3 µs11.54 ms69.48 ms80.16 ms2.58 ms80.16 ms6.4x faster
Streaming Lineszerodepsubprocess11.15 ms11.15 ms89.789.710.99 ms11.99 ms183.3 µs11.54 ms10.99 ms11.48 ms97.3 µs11.34 ms~equal

scheduler↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Batch Next Fire Timezerodepcroniter654.9 µs4.26 ms1.5K234.9638.8 µs777.5 µs10.9 µs667.7 µs4.17 ms4.51 ms44.2 µs4.35 ms6.5x faster
Batch Next Fire TimezerodepAPScheduler654.9 µs983.0 µs1.5K1.0K638.8 µs777.5 µs10.9 µs667.7 µs960.7 µs1.06 ms9.7 µs995.8 µs1.5x faster
Cron Parsingzerodepcroniter43.4 µs364.9 µs23.1K2.7K41.8 µs123.2 µs3.0 µs46.7 µs343.2 µs858.8 µs41.2 µs383.7 µs8.4x faster
Cron ParsingzerodepAPScheduler43.4 µs177.7 µs23.1K5.6K41.8 µs123.2 µs3.0 µs46.7 µs168.5 µs257.9 µs9.7 µs193.8 µs4.1x faster
Job Add Overheadzerodepschedule533.3 µs640.6 µs1.9K1.6K515.4 µs729.4 µs14.7 µs548.7 µs340.4 µs303.04 ms6.93 ms1.33 ms1.2x faster
Next Fire Timezerodepcroniter52.0 µs672.7 µs19.2K1.5K50.7 µs104.9 µs3.0 µs61.2 µs640.8 µs799.5 µs18.7 µs698.0 µs12.9x faster
Next Fire TimezerodepAPScheduler52.0 µs136.7 µs19.2K7.3K50.7 µs104.9 µs3.0 µs61.2 µs128.4 µs246.1 µs7.3 µs150.1 µs2.6x faster

semver↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Comparezerodeppackaging3.4 µs3.8 µs297.1K260.3K3.2 µs35.0 µs652.4 ns3.4 µs3.6 µs32.2 µs727.0 ns3.9 µs1.1x faster
Parse Complexzerodeppackaging22.1 µs21.7 µs45.2K46.1K21.3 µs111.2 µs2.2 µs23.1 µs20.8 µs74.9 µs2.4 µs22.4 µs~equal
Parse Prereleasezerodeppackaging19.2 µs20.2 µs52.0K49.4K18.4 µs69.1 µs1.8 µs19.4 µs19.5 µs69.5 µs1.7 µs20.3 µs1.1x faster
Parse Simplezerodeppackaging13.6 µs5.8 µs73.5K172.6K13.1 µs153.0 µs1.7 µs13.6 µs5.5 µs40.4 µs876.6 ns5.8 µs2.3x slower
Property Accesszerodeppackaging1.2 µs9.0 µs831.9K111.2K1.1 µs16.6 µs328.1 ns1.2 µs8.6 µs51.0 µs1.1 µs9.1 µs7.5x faster
Sortzerodeppackaging1.7 µs1.9 µs576.0K527.3K1.6 µs21.6 µs443.9 ns1.7 µs1.8 µs29.1 µs440.7 ns1.9 µs1.1x faster

soup↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Fixture Parse Blog Postzerodepbeautifulsoup43.07 ms9.67 ms326.1103.42.85 ms4.64 ms408.2 µs4.25 ms8.22 ms118.58 ms10.31 ms9.86 ms3.2x faster
Fixture Parse Docs Pagezerodepbeautifulsoup44.80 ms14.30 ms208.469.94.03 ms109.78 ms7.04 ms5.38 ms12.18 ms123.50 ms13.06 ms13.65 ms3.0x faster
Fixture Parse Ecommercezerodepbeautifulsoup46.91 ms21.53 ms144.746.45.80 ms111.97 ms8.57 ms7.37 ms16.79 ms126.51 ms20.40 ms19.02 ms3.1x faster
Fixture Select Docs Pagezerodepbeautifulsoup45.42 ms20.72 ms184.648.35.11 ms7.14 ms448.5 µs6.46 ms17.57 ms122.81 ms14.63 ms22.43 ms3.8x faster
Fixture Select Ecommercezerodepbeautifulsoup48.41 ms27.17 ms118.936.87.18 ms116.00 ms9.45 ms8.76 ms23.80 ms124.51 ms16.23 ms26.95 ms3.2x faster
Fixture Serialize Blog Postzerodepbeautifulsoup43.20 ms13.00 ms313.076.92.98 ms4.58 ms405.0 µs4.41 ms11.26 ms120.27 ms11.79 ms12.88 ms4.1x faster
Fixture Serialize Ecommercezerodepbeautifulsoup47.20 ms27.15 ms138.836.86.14 ms112.72 ms8.63 ms7.63 ms23.02 ms139.50 ms17.85 ms25.67 ms3.8x faster
Largezerodepbeautifulsoup425.95 ms70.60 ms38.514.219.18 ms119.79 ms23.86 ms115.24 ms54.65 ms162.62 ms40.58 ms162.62 ms2.7x faster
Mediumzerodepbeautifulsoup42.21 ms6.40 ms453.2156.42.06 ms3.30 ms287.7 µs3.20 ms5.44 ms101.57 ms7.47 ms6.97 ms2.9x faster
Pseudo Select (Large)zerodepbeautifulsoup4104.86 ms138.66 ms9.57.293.85 ms198.30 ms31.02 ms198.30 ms114.89 ms223.93 ms45.86 ms223.93 ms1.3x faster
Pseudo Select (Medium)zerodepbeautifulsoup43.71 ms12.11 ms269.382.63.53 ms4.91 ms297.5 µs4.71 ms11.73 ms13.59 ms515.4 µs13.38 ms3.3x faster
Pseudo Select (Small)zerodepbeautifulsoup4424.7 µs1.64 ms2.4K608.7397.1 µs781.8 µs33.3 µs505.6 µs1.55 ms2.15 ms83.3 µs1.77 ms3.9x faster
Scale Curveparse_find_zerodep[5nodes]parse_find_bs4[5nodes]275.0 µs741.4 µs3.6K1.3K246.0 µs713.0 µs48.8 µs361.5 µs673.5 µs1.18 ms73.6 µs853.3 µs2.7x faster
Scale Curveparse_find_zerodep[5nodes]serialize_bs4[5nodes]275.0 µs973.4 µs3.6K1.0K246.0 µs713.0 µs48.8 µs361.5 µs903.7 µs1.42 ms72.4 µs1.08 ms3.5x faster
Scale Curveparse_find_zerodep[5nodes]css_select_bs4[5nodes]275.0 µs1.09 ms3.6K916.8246.0 µs713.0 µs48.8 µs361.5 µs1.02 ms1.61 ms73.8 µs1.21 ms4.0x faster
Scale Curveparse_find_zerodep[25nodes]parse_find_bs4[25nodes]1.24 ms3.04 ms805.3329.21.01 ms106.79 ms3.92 ms1.17 ms2.84 ms4.49 ms369.0 µs4.29 ms2.4x faster
Scale Curveparse_find_zerodep[25nodes]serialize_bs4[25nodes]1.24 ms4.70 ms805.3213.01.01 ms106.79 ms3.92 ms1.17 ms3.76 ms173.26 ms11.00 ms5.27 ms3.8x faster
Scale Curveparse_find_zerodep[25nodes]css_select_bs4[25nodes]1.24 ms4.26 ms805.3235.01.01 ms106.79 ms3.92 ms1.17 ms4.05 ms5.70 ms368.2 µs5.52 ms3.4x faster
Scale Curveparse_find_zerodep[50nodes]parse_find_bs4[50nodes]2.17 ms6.83 ms460.4146.51.99 ms3.43 ms320.8 µs3.25 ms5.48 ms176.24 ms13.08 ms7.08 ms3.1x faster
Scale Curveparse_find_zerodep[50nodes]serialize_bs4[50nodes]2.17 ms7.71 ms460.4129.71.99 ms3.43 ms320.8 µs3.25 ms7.33 ms9.22 ms533.1 µs9.03 ms3.6x faster
Scale Curveparse_find_zerodep[50nodes]css_select_bs4[50nodes]2.17 ms9.78 ms460.4102.21.99 ms3.43 ms320.8 µs3.25 ms7.73 ms212.53 ms18.44 ms9.41 ms4.5x faster
Scale Curveparse_find_zerodep[250nodes]parse_find_bs4[250nodes]12.36 ms33.39 ms80.929.99.55 ms119.21 ms15.36 ms11.43 ms26.49 ms133.91 ms24.13 ms125.90 ms2.7x faster
Scale Curveparse_find_zerodep[250nodes]serialize_bs4[250nodes]12.36 ms44.72 ms80.922.49.55 ms119.21 ms15.36 ms11.43 ms35.93 ms144.44 ms28.57 ms143.18 ms3.6x faster
Scale Curveparse_find_zerodep[250nodes]css_select_bs4[250nodes]12.36 ms47.08 ms80.921.29.55 ms119.21 ms15.36 ms11.43 ms37.43 ms154.08 ms30.79 ms149.17 ms3.8x faster
Scale Curveparse_find_zerodep[500nodes]parse_find_bs4[500nodes]25.86 ms70.71 ms38.714.119.11 ms119.19 ms23.99 ms115.30 ms54.78 ms164.15 ms41.21 ms164.15 ms2.7x faster
Scale Curveparse_find_zerodep[500nodes]serialize_bs4[500nodes]25.86 ms88.06 ms38.711.419.11 ms119.19 ms23.99 ms115.30 ms71.39 ms190.60 ms40.77 ms190.60 ms3.4x faster
Scale Curveparse_find_zerodep[500nodes]css_select_bs4[500nodes]25.86 ms94.09 ms38.710.619.11 ms119.19 ms23.99 ms115.30 ms74.90 ms192.81 ms43.78 ms192.81 ms3.6x faster
Scale Curveparse_find_zerodep[2500nodes]parse_find_bs4[2500nodes]133.61 ms369.93 ms7.52.797.09 ms205.76 ms55.63 ms205.76 ms278.45 ms398.96 ms51.54 ms398.96 ms2.8x faster
Scale Curveparse_find_zerodep[2500nodes]serialize_bs4[2500nodes]133.61 ms433.86 ms7.52.397.09 ms205.76 ms55.63 ms205.76 ms358.02 ms485.01 ms66.22 ms485.01 ms3.2x faster
Scale Curveparse_find_zerodep[2500nodes]css_select_bs4[2500nodes]133.61 ms472.70 ms7.52.197.09 ms205.76 ms55.63 ms205.76 ms374.98 ms499.60 ms54.65 ms499.60 ms3.5x faster
Scale Curveparse_find_zerodep[5000nodes]parse_find_bs4[5000nodes]258.23 ms708.76 ms3.91.4192.91 ms308.64 ms59.62 ms308.64 ms671.41 ms785.44 ms45.82 ms785.44 ms2.7x faster
Scale Curveparse_find_zerodep[5000nodes]serialize_bs4[5000nodes]258.23 ms888.44 ms3.91.1192.91 ms308.64 ms59.62 ms308.64 ms835.29 ms952.40 ms57.12 ms952.40 ms3.4x faster
Scale Curveparse_find_zerodep[5000nodes]css_select_bs4[5000nodes]258.23 ms920.39 ms3.91.1192.91 ms308.64 ms59.62 ms308.64 ms892.85 ms998.98 ms44.37 ms998.98 ms3.6x faster
Scale Curveparse_find_zerodep[25000nodes]parse_find_bs4[25000nodes]1.369 s3.528 s0.70.31.338 s1.457 s49.52 ms1.457 s3.382 s3.617 s96.23 ms3.617 s2.6x faster
Scale Curveparse_find_zerodep[25000nodes]serialize_bs4[25000nodes]1.369 s4.391 s0.70.21.338 s1.457 s49.52 ms1.457 s4.369 s4.408 s14.06 ms4.408 s3.2x faster
Scale Curveparse_find_zerodep[25000nodes]css_select_bs4[25000nodes]1.369 s4.691 s0.70.21.338 s1.457 s49.52 ms1.457 s4.572 s4.847 s114.84 ms4.847 s3.4x faster
Scale Curveserialize_zerodep[5nodes]parse_find_bs4[5nodes]279.8 µs741.4 µs3.6K1.3K253.1 µs779.3 µs49.9 µs358.5 µs673.5 µs1.18 ms73.6 µs853.3 µs2.6x faster
Scale Curveserialize_zerodep[5nodes]serialize_bs4[5nodes]279.8 µs973.4 µs3.6K1.0K253.1 µs779.3 µs49.9 µs358.5 µs903.7 µs1.42 ms72.4 µs1.08 ms3.5x faster
Scale Curveserialize_zerodep[5nodes]css_select_bs4[5nodes]279.8 µs1.09 ms3.6K916.8253.1 µs779.3 µs49.9 µs358.5 µs1.02 ms1.61 ms73.8 µs1.21 ms3.9x faster
Scale Curveserialize_zerodep[25nodes]parse_find_bs4[25nodes]1.12 ms3.04 ms888.9329.21.05 ms1.75 ms104.4 µs1.19 ms2.84 ms4.49 ms369.0 µs4.29 ms2.7x faster
Scale Curveserialize_zerodep[25nodes]serialize_bs4[25nodes]1.12 ms4.70 ms888.9213.01.05 ms1.75 ms104.4 µs1.19 ms3.76 ms173.26 ms11.00 ms5.27 ms4.2x faster
Scale Curveserialize_zerodep[25nodes]css_select_bs4[25nodes]1.12 ms4.26 ms888.9235.01.05 ms1.75 ms104.4 µs1.19 ms4.05 ms5.70 ms368.2 µs5.52 ms3.8x faster
Scale Curveserialize_zerodep[50nodes]parse_find_bs4[50nodes]2.85 ms6.83 ms351.5146.52.07 ms278.07 ms13.12 ms3.20 ms5.48 ms176.24 ms13.08 ms7.08 ms2.4x faster
Scale Curveserialize_zerodep[50nodes]serialize_bs4[50nodes]2.85 ms7.71 ms351.5129.72.07 ms278.07 ms13.12 ms3.20 ms7.33 ms9.22 ms533.1 µs9.03 ms2.7x faster
Scale Curveserialize_zerodep[50nodes]css_select_bs4[50nodes]2.85 ms9.78 ms351.5102.22.07 ms278.07 ms13.12 ms3.20 ms7.73 ms212.53 ms18.44 ms9.41 ms3.4x faster
Scale Curveserialize_zerodep[250nodes]parse_find_bs4[250nodes]11.62 ms33.39 ms86.029.910.00 ms112.15 ms10.85 ms11.16 ms26.49 ms133.91 ms24.13 ms125.90 ms2.9x faster
Scale Curveserialize_zerodep[250nodes]serialize_bs4[250nodes]11.62 ms44.72 ms86.022.410.00 ms112.15 ms10.85 ms11.16 ms35.93 ms144.44 ms28.57 ms143.18 ms3.8x faster
Scale Curveserialize_zerodep[250nodes]css_select_bs4[250nodes]11.62 ms47.08 ms86.021.210.00 ms112.15 ms10.85 ms11.16 ms37.43 ms154.08 ms30.79 ms149.17 ms4.0x faster
Scale Curveserialize_zerodep[500nodes]parse_find_bs4[500nodes]29.21 ms70.71 ms34.214.119.94 ms128.45 ms28.99 ms123.56 ms54.78 ms164.15 ms41.21 ms164.15 ms2.4x faster
Scale Curveserialize_zerodep[500nodes]serialize_bs4[500nodes]29.21 ms88.06 ms34.211.419.94 ms128.45 ms28.99 ms123.56 ms71.39 ms190.60 ms40.77 ms190.60 ms3.0x faster
Scale Curveserialize_zerodep[500nodes]css_select_bs4[500nodes]29.21 ms94.09 ms34.210.619.94 ms128.45 ms28.99 ms123.56 ms74.90 ms192.81 ms43.78 ms192.81 ms3.2x faster
Scale Curveserialize_zerodep[2500nodes]parse_find_bs4[2500nodes]143.97 ms369.93 ms6.92.7100.82 ms214.35 ms55.04 ms214.35 ms278.45 ms398.96 ms51.54 ms398.96 ms2.6x faster
Scale Curveserialize_zerodep[2500nodes]serialize_bs4[2500nodes]143.97 ms433.86 ms6.92.3100.82 ms214.35 ms55.04 ms214.35 ms358.02 ms485.01 ms66.22 ms485.01 ms3.0x faster
Scale Curveserialize_zerodep[2500nodes]css_select_bs4[2500nodes]143.97 ms472.70 ms6.92.1100.82 ms214.35 ms55.04 ms214.35 ms374.98 ms499.60 ms54.65 ms499.60 ms3.3x faster
Scale Curveserialize_zerodep[5000nodes]parse_find_bs4[5000nodes]277.01 ms708.76 ms3.61.4209.68 ms323.26 ms59.35 ms323.26 ms671.41 ms785.44 ms45.82 ms785.44 ms2.6x faster
Scale Curveserialize_zerodep[5000nodes]serialize_bs4[5000nodes]277.01 ms888.44 ms3.61.1209.68 ms323.26 ms59.35 ms323.26 ms835.29 ms952.40 ms57.12 ms952.40 ms3.2x faster
Scale Curveserialize_zerodep[5000nodes]css_select_bs4[5000nodes]277.01 ms920.39 ms3.61.1209.68 ms323.26 ms59.35 ms323.26 ms892.85 ms998.98 ms44.37 ms998.98 ms3.3x faster
Scale Curveserialize_zerodep[25000nodes]parse_find_bs4[25000nodes]1.391 s3.528 s0.70.31.305 s1.423 s49.05 ms1.423 s3.382 s3.617 s96.23 ms3.617 s2.5x faster
Scale Curveserialize_zerodep[25000nodes]serialize_bs4[25000nodes]1.391 s4.391 s0.70.21.305 s1.423 s49.05 ms1.423 s4.369 s4.408 s14.06 ms4.408 s3.2x faster
Scale Curveserialize_zerodep[25000nodes]css_select_bs4[25000nodes]1.391 s4.691 s0.70.21.305 s1.423 s49.05 ms1.423 s4.572 s4.847 s114.84 ms4.847 s3.4x faster
Scale Curvecss_select_zerodep[5nodes]parse_find_bs4[5nodes]349.1 µs741.4 µs2.9K1.3K323.0 µs691.7 µs32.6 µs424.2 µs673.5 µs1.18 ms73.6 µs853.3 µs2.1x faster
Scale Curvecss_select_zerodep[5nodes]serialize_bs4[5nodes]349.1 µs973.4 µs2.9K1.0K323.0 µs691.7 µs32.6 µs424.2 µs903.7 µs1.42 ms72.4 µs1.08 ms2.8x faster
Scale Curvecss_select_zerodep[5nodes]css_select_bs4[5nodes]349.1 µs1.09 ms2.9K916.8323.0 µs691.7 µs32.6 µs424.2 µs1.02 ms1.61 ms73.8 µs1.21 ms3.1x faster
Scale Curvecss_select_zerodep[25nodes]parse_find_bs4[25nodes]1.36 ms3.04 ms735.9329.21.27 ms1.95 ms101.6 µs1.44 ms2.84 ms4.49 ms369.0 µs4.29 ms2.2x faster
Scale Curvecss_select_zerodep[25nodes]serialize_bs4[25nodes]1.36 ms4.70 ms735.9213.01.27 ms1.95 ms101.6 µs1.44 ms3.76 ms173.26 ms11.00 ms5.27 ms3.5x faster
Scale Curvecss_select_zerodep[25nodes]css_select_bs4[25nodes]1.36 ms4.26 ms735.9235.01.27 ms1.95 ms101.6 µs1.44 ms4.05 ms5.70 ms368.2 µs5.52 ms3.1x faster
Scale Curvecss_select_zerodep[50nodes]parse_find_bs4[50nodes]2.60 ms6.83 ms384.0146.52.44 ms3.74 ms286.8 µs3.58 ms5.48 ms176.24 ms13.08 ms7.08 ms2.6x faster
Scale Curvecss_select_zerodep[50nodes]serialize_bs4[50nodes]2.60 ms7.71 ms384.0129.72.44 ms3.74 ms286.8 µs3.58 ms7.33 ms9.22 ms533.1 µs9.03 ms3.0x faster
Scale Curvecss_select_zerodep[50nodes]css_select_bs4[50nodes]2.60 ms9.78 ms384.0102.22.44 ms3.74 ms286.8 µs3.58 ms7.73 ms212.53 ms18.44 ms9.41 ms3.8x faster
Scale Curvecss_select_zerodep[250nodes]parse_find_bs4[250nodes]12.24 ms33.39 ms81.729.911.74 ms13.02 ms351.4 µs12.77 ms26.49 ms133.91 ms24.13 ms125.90 ms2.7x faster
Scale Curvecss_select_zerodep[250nodes]serialize_bs4[250nodes]12.24 ms44.72 ms81.722.411.74 ms13.02 ms351.4 µs12.77 ms35.93 ms144.44 ms28.57 ms143.18 ms3.7x faster
Scale Curvecss_select_zerodep[250nodes]css_select_bs4[250nodes]12.24 ms47.08 ms81.721.211.74 ms13.02 ms351.4 µs12.77 ms37.43 ms154.08 ms30.79 ms149.17 ms3.8x faster
Scale Curvecss_select_zerodep[500nodes]parse_find_bs4[500nodes]34.79 ms70.71 ms28.714.123.24 ms354.24 ms54.29 ms24.63 ms54.78 ms164.15 ms41.21 ms164.15 ms2.0x faster
Scale Curvecss_select_zerodep[500nodes]serialize_bs4[500nodes]34.79 ms88.06 ms28.711.423.24 ms354.24 ms54.29 ms24.63 ms71.39 ms190.60 ms40.77 ms190.60 ms2.5x faster
Scale Curvecss_select_zerodep[500nodes]css_select_bs4[500nodes]34.79 ms94.09 ms28.710.623.24 ms354.24 ms54.29 ms24.63 ms74.90 ms192.81 ms43.78 ms192.81 ms2.7x faster
Scale Curvecss_select_zerodep[2500nodes]parse_find_bs4[2500nodes]139.68 ms369.93 ms7.22.7118.71 ms221.92 ms45.97 ms221.92 ms278.45 ms398.96 ms51.54 ms398.96 ms2.6x faster
Scale Curvecss_select_zerodep[2500nodes]serialize_bs4[2500nodes]139.68 ms433.86 ms7.22.3118.71 ms221.92 ms45.97 ms221.92 ms358.02 ms485.01 ms66.22 ms485.01 ms3.1x faster
Scale Curvecss_select_zerodep[2500nodes]css_select_bs4[2500nodes]139.68 ms472.70 ms7.22.1118.71 ms221.92 ms45.97 ms221.92 ms374.98 ms499.60 ms54.65 ms499.60 ms3.4x faster
Scale Curvecss_select_zerodep[5000nodes]parse_find_bs4[5000nodes]303.29 ms708.76 ms3.31.4236.44 ms353.61 ms60.84 ms353.61 ms671.41 ms785.44 ms45.82 ms785.44 ms2.3x faster
Scale Curvecss_select_zerodep[5000nodes]serialize_bs4[5000nodes]303.29 ms888.44 ms3.31.1236.44 ms353.61 ms60.84 ms353.61 ms835.29 ms952.40 ms57.12 ms952.40 ms2.9x faster
Scale Curvecss_select_zerodep[5000nodes]css_select_bs4[5000nodes]303.29 ms920.39 ms3.31.1236.44 ms353.61 ms60.84 ms353.61 ms892.85 ms998.98 ms44.37 ms998.98 ms3.0x faster
Scale Curvecss_select_zerodep[25000nodes]parse_find_bs4[25000nodes]1.618 s3.528 s0.60.31.530 s1.661 s50.95 ms1.661 s3.382 s3.617 s96.23 ms3.617 s2.2x faster
Scale Curvecss_select_zerodep[25000nodes]serialize_bs4[25000nodes]1.618 s4.391 s0.60.21.530 s1.661 s50.95 ms1.661 s4.369 s4.408 s14.06 ms4.408 s2.7x faster
Scale Curvecss_select_zerodep[25000nodes]css_select_bs4[25000nodes]1.618 s4.691 s0.60.21.530 s1.661 s50.95 ms1.661 s4.572 s4.847 s114.84 ms4.847 s2.9x faster
Select (Large)zerodepbeautifulsoup432.28 ms84.88 ms31.011.823.68 ms128.01 ms26.98 ms124.85 ms75.53 ms184.91 ms30.06 ms184.91 ms2.6x faster
Select (Medium)zerodepbeautifulsoup42.66 ms9.19 ms376.2108.92.49 ms3.91 ms305.9 µs3.68 ms7.85 ms123.33 ms10.57 ms9.52 ms3.5x faster
Select (Small)zerodepbeautifulsoup4360.4 µs1.10 ms2.8K906.8329.7 µs745.8 µs37.6 µs452.3 µs1.03 ms1.56 ms86.9 µs1.24 ms3.1x faster
Serialize (Large)zerodepbeautifulsoup426.91 ms86.90 ms37.211.520.01 ms122.82 ms24.31 ms116.81 ms71.95 ms174.11 ms36.45 ms174.11 ms3.2x faster
Serialize (Medium)zerodepbeautifulsoup42.29 ms8.52 ms436.2117.42.12 ms3.47 ms282.6 µs3.22 ms7.29 ms109.74 ms9.07 ms8.93 ms3.7x faster
Serialize (Small)zerodepbeautifulsoup4279.6 µs976.5 µs3.6K1.0K254.4 µs784.5 µs33.9 µs358.0 µs903.2 µs1.40 ms75.7 µs1.09 ms3.5x faster
Smallzerodepbeautifulsoup4273.3 µs740.9 µs3.7K1.3K247.5 µs550.5 µs34.2 µs355.3 µs671.7 µs1.27 ms78.2 µs859.7 µs2.7x faster
Tree Ops (Large)zerodepbeautifulsoup428.38 ms78.65 ms35.212.721.11 ms124.25 ms25.16 ms120.71 ms58.44 ms175.12 ms43.09 ms175.12 ms2.8x faster
Tree Ops (Medium)zerodepbeautifulsoup42.38 ms6.45 ms419.8155.02.19 ms3.91 ms279.2 µs3.20 ms6.04 ms7.97 ms507.5 µs7.77 ms2.7x faster
Tree Ops (Small)zerodepbeautifulsoup4342.8 µs892.3 µs2.9K1.1K273.6 µs107.59 ms2.14 ms380.9 µs819.7 µs1.41 ms77.1 µs1.00 ms2.6x faster

sse↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Large Streamzerodephttpx2.93 ms2.19 ms341.1457.12.88 ms3.23 ms29.0 µs2.98 ms2.15 ms2.48 ms26.8 µs2.22 ms1.3x slower
Medium Streamzerodephttpx387.0 µs311.5 µs2.6K3.2K377.2 µs499.5 µs9.4 µs398.7 µs302.3 µs400.0 µs7.2 µs320.4 µs1.2x slower
Small Streamzerodephttpx29.7 µs21.6 µs33.7K46.3K28.8 µs72.3 µs2.0 µs30.1 µs20.9 µs58.5 µs1.6 µs21.7 µs1.4x slower

structlog↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Bind And Logzerodepstructlog11.3 µs22.2 µs88.2K45.1K10.6 µs53.3 µs2.1 µs11.5 µs18.7 µs1.03 ms13.8 µs29.2 µs2.0x faster
Bound Logzerodepstructlog11.9 µs19.8 µs84.4K50.4K11.2 µs56.0 µs1.9 µs12.0 µs17.8 µs123.1 µs5.2 µs32.6 µs1.7x faster
JSONRenderingzerodepstructlog9.4 µs11.2 µs106.2K89.0K8.9 µs58.9 µs1.7 µs9.5 µs10.6 µs53.6 µs1.9 µs11.5 µs1.2x faster
Simple Logzerodepstructlog10.0 µs13.1 µs99.9K76.3K9.5 µs51.8 µs1.7 µs10.1 µs12.3 µs84.8 µs2.2 µs13.5 µs1.3x faster

tabulate↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Large Tablezerodepreference6.14 ms26.81 ms163.037.36.07 ms6.50 ms56.0 µs6.23 ms26.56 ms27.10 ms98.2 µs26.98 ms4.4x faster
Medium Tablezerodepreference405.5 µs1.78 ms2.5K561.6393.7 µs520.7 µs10.8 µs419.6 µs1.74 ms3.72 ms111.4 µs1.82 ms4.4x faster
Small Tablezerodepreference53.0 µs173.0 µs18.9K5.8K50.2 µs117.1 µs3.7 µs63.3 µs164.2 µs305.8 µs11.5 µs190.8 µs3.3x faster

toon↗

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
decode_large_oursDecode2.17 ms460.32.13 ms2.58 ms37.3 µs2.22 ms
decode_large_refDecode2.29 ms436.22.25 ms2.70 ms30.5 µs2.34 ms
decode_medium_oursDecode326.1 µs3.1K310.0 µs425.3 µs9.4 µs339.8 µs
decode_medium_refDecode340.4 µs2.9K327.5 µs628.7 µs12.4 µs355.1 µs
decode_small_oursDecode20.5 µs48.7K19.6 µs81.6 µs2.2 µs21.2 µs
decode_small_refDecode22.7 µs44.1K21.7 µs55.1 µs2.0 µs23.4 µs
encode_large_oursEncode1.26 ms795.01.23 ms1.49 ms22.7 µs1.29 ms
encode_large_refEncode1.64 ms611.21.60 ms1.96 ms24.7 µs1.67 ms
encode_medium_oursEncode210.7 µs4.7K202.5 µs312.7 µs9.1 µs223.2 µs
encode_medium_refEncode270.9 µs3.7K262.1 µs364.8 µs8.7 µs283.1 µs
encode_small_oursEncode9.0 µs111.5K8.6 µs28.3 µs1.2 µs9.2 µs
encode_small_refEncode12.4 µs80.9K11.8 µs33.1 µs1.6 µs13.0 µs

useragent↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Generate Chrome Desktopzerodepua-generator5.1 µs12.2 µs196.3K81.8K4.0 µs237.9 µs6.0 µs5.3 µs10.4 µs59.3 µs1.8 µs13.3 µs2.4x faster
Generate Defaultzerodepua-generator5.6 µs13.7 µs177.7K72.8K4.3 µs2.11 ms16.1 µs5.7 µs9.2 µs50.9 µs3.0 µs17.8 µs2.4x faster
Generate Edge Mobilezerodepua-generator5.4 µs15.1 µs185.8K66.2K4.6 µs274.9 µs6.0 µs5.2 µs11.9 µs161.8 µs3.0 µs17.5 µs2.8x faster
Headers Getzerodepua-generator8.1 µs16.6 µs123.9K60.2K6.8 µs272.1 µs7.0 µs8.3 µs14.0 µs68.8 µs2.5 µs18.3 µs2.1x faster

validate↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Benchmark Constrainedourspydantic10.6 µs1.5 µs94.7K649.1K10.2 µs33.2 µs1.2 µs10.7 µs1.5 µs48.1 µs426.9 ns1.6 µs6.9x slower
Benchmark Json Schemaourspydantic9.9 µs193.1 µs101.5K5.2K9.4 µs48.0 µs1.2 µs9.9 µs169.0 µs2.26 ms76.5 µs260.0 µs19.6x faster
Benchmark List Of Dictsourspydantic251.2 µs32.9 µs4.0K30.4K243.9 µs524.4 µs8.8 µs260.7 µs31.6 µs57.7 µs2.5 µs33.4 µs7.6x slower
Benchmark Nestedourspydantic11.1 µs2.1 µs89.7K468.5K10.8 µs52.0 µs1.3 µs11.2 µs2.0 µs47.3 µs515.6 ns2.2 µs5.2x slower
Benchmark Simpleourspydantic6.2 µs1.4 µs161.7K690.5K6.0 µs27.4 µs849.8 ns6.2 µs1.4 µs19.1 µs371.9 ns1.5 µs4.3x slower

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Benchmark Conversation (Large)ours44.79 ms22.344.48 ms45.19 ms191.3 µs45.14 ms
Benchmark Conversation (Medium)ours8.93 ms112.08.81 ms10.60 ms175.7 µs8.99 ms
Benchmark Conversation (Small)ours612.4 µs1.6K597.2 µs879.1 µs12.1 µs623.5 µs
Benchmark Disc Union Flat2000ours15.71 ms63.715.55 ms15.96 ms75.0 µs15.85 ms
Benchmark Disc Union Flat50ours401.6 µs2.5K391.2 µs471.4 µs7.7 µs412.3 µs
Benchmark Disc Union Flat500ours3.92 ms255.03.88 ms4.35 ms43.4 µs3.99 ms
Benchmark Tools10ours440.3 µs2.3K429.5 µs787.8 µs11.8 µs450.1 µs
Benchmark Tools200ours16.15 ms61.916.07 ms16.52 ms68.4 µs16.26 ms
Benchmark Tools50ours3.29 ms304.13.24 ms3.55 ms28.7 µs3.33 ms

websocket↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Burst Messageszerodepwebsockets5.34 ms8.63 ms187.4115.94.06 ms8.66 ms1.57 ms8.37 ms7.50 ms13.05 ms890.4 µs9.89 ms1.6x faster
Concurrent Messageszerodepwebsockets17.05 ms20.60 ms58.748.516.26 ms17.77 ms338.6 µs17.65 ms19.23 ms23.33 ms813.5 µs23.05 ms1.2x faster
Connection Setupzerodepwebsockets457.1 µs1.21 ms2.2K827.3394.2 µs804.2 µs53.7 µs572.3 µs1.08 ms1.70 ms46.4 µs1.29 ms2.6x faster
Json Rpc Roundtripzerodepwebsockets111.8 µs152.6 µs8.9K6.6K89.9 µs226.5 µs15.2 µs134.6 µs121.0 µs252.9 µs7.0 µs164.9 µs1.4x faster
Large Payloadzerodepwebsockets6.34 ms3.27 ms157.7306.16.02 ms6.76 ms144.5 µs6.55 ms3.22 ms3.55 ms32.4 µs3.31 ms1.9x slower

xml↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Parse (Large)zerodepxmltodict5.15 ms5.63 ms194.2177.75.07 ms5.42 ms49.1 µs5.23 ms5.54 ms6.12 ms69.6 µs5.72 ms1.1x faster
Parse (Medium)zerodepxmltodict379.9 µs427.1 µs2.6K2.3K368.0 µs532.7 µs10.8 µs394.1 µs414.3 µs671.4 µs12.3 µs441.1 µs1.1x faster
Parse (Small)zerodepxmltodict15.4 µs17.3 µs64.9K57.8K14.7 µs173.4 µs2.8 µs16.0 µs16.5 µs64.1 µs2.1 µs18.0 µs1.1x faster
Unparse (Large)zerodepxmltodict3.96 ms6.40 ms252.5156.13.91 ms4.43 ms45.9 µs4.02 ms6.30 ms6.68 ms54.6 µs6.49 ms1.6x faster
Unparse (Medium)zerodepxmltodict272.8 µs457.8 µs3.7K2.2K264.4 µs565.9 µs10.1 µs284.6 µs442.0 µs673.0 µs12.3 µs473.4 µs1.7x faster
Unparse (Small)zerodepxmltodict14.4 µs20.2 µs69.4K49.4K13.7 µs67.5 µs2.2 µs15.1 µs18.9 µs75.8 µs3.3 µs23.8 µs1.4x faster

Standalone benchmarks

OperationVariantMeanops/sMinMaxStdDevP95
Extract Tagsextract_all727.8 µs1.4K705.6 µs986.8 µs19.8 µs754.2 µs
Extract Tagsextract_filtered432.6 µs2.3K411.6 µs924.7 µs33.9 µs449.3 µs
Extract Tagsextract_first_only9.3 µs107.0K8.9 µs56.5 µs1.4 µs9.4 µs

yaml↗

OperationzerodepReferencezd meanRef meanzd ops/sRef ops/szerodep tail latencyRef tail latencyRatio
MinMaxStdDevP95MinMaxStdDevP95
Dump (Large)zerodepPyYAML2.59 ms20.27 ms386.449.32.56 ms2.88 ms25.5 µs2.63 ms19.88 ms21.01 ms200.4 µs20.53 ms7.8x faster
Dump (Medium)zerodepPyYAML122.0 µs975.8 µs8.2K1.0K118.4 µs226.3 µs5.5 µs132.5 µs940.5 µs1.29 ms21.6 µs1.00 ms8.0x faster
Dump (Small)zerodepPyYAML19.4 µs172.1 µs51.6K5.8K18.6 µs61.0 µs2.4 µs19.9 µs162.1 µs352.4 µs10.1 µs187.5 µs8.9x faster
Fixture Dump Docker ComposezerodepPyYAML13.3 µs95.4 µs75.3K10.5K12.5 µs83.9 µs2.1 µs13.4 µs90.6 µs214.9 µs6.5 µs109.0 µs7.2x faster
Fixture Dump Github ActionszerodepPyYAML536.2 µs3.47 ms1.9K288.5519.0 µs1.11 ms36.7 µs548.9 µs3.38 ms4.80 ms135.1 µs3.56 ms6.5x faster
Fixture Dump K8s DeploymentzerodepPyYAML301.3 µs1.94 ms3.3K515.8292.4 µs479.9 µs9.5 µs312.7 µs1.89 ms2.05 ms22.2 µs1.98 ms6.4x faster
Fixture Load Docker ComposezerodepPyYAML1.10 ms8.09 ms908.6123.51.08 ms1.33 ms15.6 µs1.12 ms7.38 ms85.52 ms6.90 ms7.61 ms7.4x faster
Fixture Load Github ActionszerodepPyYAML943.7 µs6.63 ms1.1K150.9879.0 µs1.26 ms55.4 µs1.01 ms6.52 ms7.13 ms79.7 µs6.75 ms7.0x faster
Fixture Load K8s DeploymentzerodepPyYAML2.44 ms16.55 ms409.860.42.41 ms2.84 ms30.5 µs2.49 ms16.38 ms17.16 ms136.5 µs16.75 ms6.8x faster
Load (Large)zerodepPyYAML5.54 ms44.59 ms180.422.45.47 ms5.78 ms58.0 µs5.65 ms40.70 ms122.27 ms16.55 ms42.51 ms8.0x faster
Load (Medium)zerodepPyYAML285.5 µs1.91 ms3.5K523.3277.5 µs412.3 µs8.6 µs295.8 µs1.86 ms2.32 ms38.5 µs1.97 ms6.7x faster
Load (Small)zerodepPyYAML43.2 µs297.5 µs23.2K3.4K41.7 µs114.7 µs3.2 µs45.7 µs283.5 µs610.6 µs19.3 µs314.4 µs6.9x faster
Scale Curvedump_zerodep[100B]PyYAML20.3 µs153.9 µs49.1K6.5K19.7 µs74.3 µs1.8 µs20.6 µs146.5 µs714.4 µs12.4 µs166.8 µs7.6x faster
Scale Curvedump_zerodep[100KB]PyYAML23.46 ms127.33 ms42.67.923.16 ms23.86 ms193.9 µs23.74 ms116.83 ms201.69 ms27.90 ms201.69 ms5.4x faster
Scale Curvedump_zerodep[10KB]PyYAML2.35 ms11.57 ms426.286.52.31 ms3.43 ms59.7 µs2.38 ms11.34 ms13.46 ms250.8 µs11.91 ms4.9x faster
Scale Curvedump_zerodep[1KB]PyYAML185.9 µs1.19 ms5.4K843.3180.0 µs696.9 µs13.9 µs194.6 µs1.15 ms1.57 ms24.9 µs1.22 ms6.4x faster
Scale Curvedump_zerodep[500B]PyYAML92.8 µs613.7 µs10.8K1.6K90.1 µs153.7 µs4.0 µs101.9 µs585.1 µs912.7 µs17.8 µs637.9 µs6.6x faster
Scale Curvedump_zerodep[500KB]PyYAML118.50 ms642.40 ms8.41.6116.65 ms119.30 ms872.4 µs119.30 ms586.23 ms684.24 ms50.86 ms684.24 ms5.4x faster
Scale Curvedump_zerodep[50KB]PyYAML11.78 ms59.37 ms84.916.811.55 ms12.19 ms97.7 µs11.90 ms58.53 ms61.16 ms584.9 µs61.16 ms5.0x faster
Scale Curvedump_zerodep[5KB]PyYAML1.03 ms5.74 ms968.1174.1901.6 µs1.27 ms115.8 µs1.16 ms5.58 ms6.10 ms96.4 µs5.92 ms5.6x faster
Scale Curveload_zerodep[100B]PyYAML41.3 µs249.6 µs24.2K4.0K40.1 µs111.8 µs2.7 µs43.8 µs238.2 µs368.7 µs10.5 µs263.6 µs6.0x faster
Scale Curveload_zerodep[100KB]PyYAML36.48 ms229.56 ms27.44.435.93 ms39.03 ms575.4 µs37.39 ms212.20 ms289.62 ms33.66 ms289.62 ms6.3x faster
Scale Curveload_zerodep[10KB]PyYAML3.52 ms23.23 ms284.043.03.47 ms3.90 ms33.2 µs3.56 ms21.07 ms98.86 ms11.54 ms22.44 ms6.6x faster
Scale Curveload_zerodep[1KB]PyYAML342.3 µs2.14 ms2.9K467.2331.9 µs648.2 µs10.3 µs352.1 µs2.09 ms2.41 ms32.5 µs2.21 ms6.3x faster
Scale Curveload_zerodep[500B]PyYAML196.8 µs1.09 ms5.1K920.3191.5 µs296.0 µs6.2 µs206.0 µs1.06 ms1.30 ms19.1 µs1.12 ms5.5x faster
Scale Curveload_zerodep[500KB]PyYAML202.17 ms1.213 s4.90.8185.00 ms264.54 ms34.88 ms264.54 ms1.176 s1.266 s46.37 ms1.266 s6.0x faster
Scale Curveload_zerodep[50KB]PyYAML18.04 ms115.91 ms55.48.617.80 ms18.70 ms138.0 µs18.24 ms106.78 ms187.31 ms25.11 ms187.31 ms6.4x faster
Scale Curveload_zerodep[5KB]PyYAML1.74 ms10.81 ms574.692.51.69 ms2.07 ms30.1 µs1.77 ms10.65 ms11.12 ms104.8 µs11.04 ms6.2x faster