Skip to content

v1.4.5: Python fidelity and single-thread performance

Choose a tag to compare

@markusmobius markusmobius released this 13 Sep 05:23

Go-DateParser v1.4.5 combines single-threaded parsing improvements with Python-verified search, calendar and overflow corrections. Requires Go 1.26 or newer; normal builds do not require cgo.

Performance

Published Go-DateParser v1.4.3 versus v1.4.5, measured on 2026-09-13
with Go 1.27.1 on an AMD Ryzen AI 7 PRO 350, Linux x86_64/WSL2. Both versions
use one caller pinned to CPU 2, portable build settings,
CGO_ENABLED=0, GOAMD64=v1, GOMAXPROCS=1, default garbage collection and
no optional regex tags.

Workload Inputs v1.4.3 Warm Pass v1.4.5 Warm Pass Old/New Time
Automatic locale detection 226 633.36 ms 150.67 ms 4.20x
Explicit locales/languages 2,530 935.42 ms 1,017.53 ms 0.92x
HtmlDate strict/past 195 742.00 ms 264.97 ms 2.80x
Automatic search 3 13.90 ms 9.82 ms 1.42x
Split search 34 251.06 ms 23.05 ms 10.89x
N-gram search 39 67.79 ms 65.79 ms 1.03x
Time-span search 96 58.74 ms 21.88 ms 2.68x
Jalali parsing 1,311 21.58 ms 12.47 ms 1.73x
Hijri parsing 6,193 57.98 ms 44.65 ms 1.30x

Times are per complete corpus traversal, summarized as the median of six
per-process medians, with eight timed passes per process and balanced execution
order. Feature passes repeat the corpus 16 times and are divided by 16 here.
Setup, first-use initialization and output checks are outside the warm timers.
An Old/New ratio above 1 means v1.4.5 took less time. These are regression-corpus
measurements, not production throughput or isolated startup timings.

The same inputs and settings are used for both versions. Go v1.4.5 matches all
7,676 expected Python feature outcomes, including expected rejections. Go v1.4.3
differs on 1,900 of those inputs, including 490 recovered Hijri panics; no inputs
are dropped, and both versions use the same recovery wrapper. Historical Jalali
outcomes can also vary between processes. These rows therefore compare runtime
costs on the same inputs, not equally correct implementations.

Automatic search has only three texts. Explicit parsing and n-gram timing ranges
overlap, so those ratios do not establish a clear performance change. The
raw report
retains every sample, outcome audit, execution order and build identity.

Reproduce these measurements.