Skip to content

Instantly share code, notes, and snippets.

@quinnj
Created August 22, 2026 05:00
Show Gist options
  • Select an option

  • Save quinnj/9bde599ab620754e63fe36fe1b83e798 to your computer and use it in GitHub Desktop.

Select an option

Save quinnj/9bde599ab620754e63fe36fe1b83e798 to your computer and use it in GitHub Desktop.
Parsers.jl 3.0 benchmark charts (PR #210)

Parsers.jl 3.0 benchmark charts

Grouped-bar charts of Base.parse vs Parsers.parse 2.8.7 (registered release) vs Parsers.parse 3.0 (JuliaData/Parsers.jl PR #210 at e4adc5b), one chart per value family.

Metric: nanoseconds per value — the minimum over BenchmarkTools samples, where each sample parses a seeded 1,000-string corpus of the shape through the public parse(T, ::String) API. Julia 1.12.6, Apple M3 Max, 2026-08-21. results-2x.tsv and results-3.tsv hold the raw measurements (family, shape, contender, ns/value).

We can make this file beautiful and searchable if this error is corrected: Any value after quoted field isn't allowed in line 24.
# julia=1.12.6 parsers=2.8.7 cpu=Apple M3 Max N=1000
Integers Int64 · 1–4 digits Base.parse 15.04 ok
Integers Int64 · 1–4 digits Parsers.parse 2.8.7 5.94 ok
Integers Int64 · 5–9 digits Base.parse 20.17 ok
Integers Int64 · 5–9 digits Parsers.parse 2.8.7 7.91 ok
Integers Int64 · 10–18 digits Base.parse 31.96 ok
Integers Int64 · 10–18 digits Parsers.parse 2.8.7 11.75 ok
Integers Int128 · 20–37 digits Base.parse 66.79 ok
Integers Int128 · 20–37 digits Parsers.parse 2.8.7 39.33 ok
Floats Float64 · short (x.yyy) Base.parse 15.29 ok
Floats Float64 · short (x.yyy) Parsers.parse 2.8.7 13.29 ok
Floats Float64 · 17 sig. digits Base.parse 27.58 ok
Floats Float64 · 17 sig. digits Parsers.parse 2.8.7 28.75 ok
Floats Float64 · exponent form Base.parse 24.17 ok
Floats Float64 · exponent form Parsers.parse 2.8.7 15.54 ok
Floats Float64 · subnormal Base.parse 26.0 ok
Floats Float64 · subnormal Parsers.parse 2.8.7 109.12 ok
Floats Float32 · short (x.yyy) Base.parse 15.54 ok
Floats Float32 · short (x.yyy) Parsers.parse 2.8.7 13.63 ok
Bools true / false Base.parse 10.12 ok
Bools true / false Parsers.parse 2.8.7 10.25 ok
Bools 1 / 0 Base.parse 12.83 ok
Bools 1 / 0 Parsers.parse 2.8.7 5.93 ok
Bools " true " (padded) Base.parse 13.79 ok
Bools " true " (padded) Parsers.parse 2.8.7 11.29 ok
Dates Date · ISO Base.parse 19.0 ok
Dates Date · ISO Parsers.parse 2.8.7 21.25 ok
Dates DateTime · ISO Base.parse 27.88 ok
Dates DateTime · ISO Parsers.parse 2.8.7 61.88 ok
Dates DateTime · ISO + ms Base.parse 29.38 ok
Dates DateTime · ISO + ms Parsers.parse 2.8.7 146.79 ok
Dates Time · HH:MM:SS Base.parse 18.17 ok
Dates Time · HH:MM:SS Parsers.parse 2.8.7 172.25 ok
Dates Date · mm/dd/yyyy Base.parse 19.08 ok
Dates Date · mm/dd/yyyy Parsers.parse 2.8.7 19.58 ok
UUIDs UUID · lowercase Base.parse 25.54 ok
UUIDs UUID · lowercase Parsers.parse 2.8.7 14.62 ok
UUIDs UUID · uppercase Base.parse 25.75 ok
UUIDs UUID · uppercase Parsers.parse 2.8.7 14.75 ok
Bignums BigInt · 30 digits Base.parse 99.54 ok
Bignums BigInt · 30 digits Parsers.parse 2.8.7 4112.67 ok
Bignums BigInt · 100 digits Base.parse 164.5 ok
Bignums BigInt · 100 digits Parsers.parse 2.8.7 14668.42 ok
Bignums BigFloat · short (x.yyyyy) Base.parse 185.12 ok
Bignums BigFloat · short (x.yyyyy) Parsers.parse 2.8.7 195.0 ok
Bignums BigFloat · 40 digits + exp Base.parse 286.21 ok
Bignums BigFloat · 40 digits + exp Parsers.parse 2.8.7 295.62 ok
We can make this file beautiful and searchable if this error is corrected: Any value after quoted field isn't allowed in line 24.
# julia=1.12.6 parsers=3.0.0-DEV cpu=Apple M3 Max N=1000
Integers Int64 · 1–4 digits Base.parse 15.0 ok
Integers Int64 · 1–4 digits Parsers.parse 3.0 4.79 ok
Integers Int64 · 5–9 digits Base.parse 20.12 ok
Integers Int64 · 5–9 digits Parsers.parse 3.0 4.76 ok
Integers Int64 · 10–18 digits Base.parse 31.96 ok
Integers Int64 · 10–18 digits Parsers.parse 3.0 5.27 ok
Integers Int128 · 20–37 digits Base.parse 66.88 ok
Integers Int128 · 20–37 digits Parsers.parse 3.0 15.5 ok
Floats Float64 · short (x.yyy) Base.parse 16.38 ok
Floats Float64 · short (x.yyy) Parsers.parse 3.0 9.54 ok
Floats Float64 · 17 sig. digits Base.parse 27.71 ok
Floats Float64 · 17 sig. digits Parsers.parse 3.0 23.5 ok
Floats Float64 · exponent form Base.parse 24.04 ok
Floats Float64 · exponent form Parsers.parse 3.0 9.83 ok
Floats Float64 · subnormal Base.parse 27.79 ok
Floats Float64 · subnormal Parsers.parse 3.0 20.88 ok
Floats Float32 · short (x.yyy) Base.parse 16.62 ok
Floats Float32 · short (x.yyy) Parsers.parse 3.0 9.5 ok
Bools true / false Base.parse 10.83 ok
Bools true / false Parsers.parse 3.0 5.03 ok
Bools 1 / 0 Base.parse 13.75 ok
Bools 1 / 0 Parsers.parse 3.0 3.56 ok
Bools " true " (padded) Base.parse 13.88 ok
Bools " true " (padded) Parsers.parse 3.0 6.62 ok
Dates Date · ISO Base.parse 19.54 ok
Dates Date · ISO Parsers.parse 3.0 5.01 ok
Dates DateTime · ISO Base.parse 27.75 ok
Dates DateTime · ISO Parsers.parse 3.0 7.74 ok
Dates DateTime · ISO + ms Base.parse 29.5 ok
Dates DateTime · ISO + ms Parsers.parse 3.0 10.67 ok
Dates Time · HH:MM:SS Base.parse 18.0 ok
Dates Time · HH:MM:SS Parsers.parse 3.0 3.43 ok
Dates Date · mm/dd/yyyy Base.parse 19.12 ok
Dates Date · mm/dd/yyyy Parsers.parse 3.0 13.5 ok
UUIDs UUID · lowercase Base.parse 27.75 ok
UUIDs UUID · lowercase Parsers.parse 3.0 5.53 ok
UUIDs UUID · uppercase Base.parse 25.83 ok
UUIDs UUID · uppercase Parsers.parse 3.0 5.76 ok
Bignums BigInt · 30 digits Base.parse 104.33 ok
Bignums BigInt · 30 digits Parsers.parse 3.0 39.29 ok
Bignums BigInt · 100 digits Base.parse 166.96 ok
Bignums BigInt · 100 digits Parsers.parse 3.0 72.62 ok
Bignums BigFloat · short (x.yyyyy) Base.parse 186.46 ok
Bignums BigFloat · short (x.yyyyy) Parsers.parse 3.0 74.71 ok
Bignums BigFloat · 40 digits + exp Base.parse 309.46 ok
Bignums BigFloat · 40 digits + exp Parsers.parse 3.0 182.67 ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment