Skip to content

perf: use Python 3.14#378

Open
bolinocroustibat wants to merge 4 commits intomainfrom
python-3.14
Open

perf: use Python 3.14#378
bolinocroustibat wants to merge 4 commits intomainfrom
python-3.14

Conversation

@bolinocroustibat
Copy link
Contributor

@bolinocroustibat bolinocroustibat commented Jan 19, 2026

Upgrading from Python 3.11 to 3.14 for performance gains on our pure-Python workloads.

Benchmark results (circleci, same runner, 4 runs for Python 3.14)

Test 3.11 mean 3.14 mean Speedup
CSV analysis 50.5s 29.2s 1.73× (+42%)
CSV → GeoJSON 299.9s 227.2s 1.32× (+24%)
PMTiles (tippecanoe, C++) 212.5s 207.8s ~1× (expected)

Results from the benchmarks branch. The PMTiles test acts as a negative control (C++ tool, unaffected by Python version), confirming the CSV gains might be real.

The 4 Python 3.14 runs are consistent: 28.41s, 29.23s, 28.49s, 30.51s (standard deviation of 0.97s).

A single 3.13 run on a different runner showed no improvement over 3.11 — not conclusive given the different setup, but it hints the gains may be specific to 3.14 which is consistent with what we can read on some performance reports.

The speedup could come from Python 3.14's interpreter improvements, which benefit csv-detective and dateparser (pure-Python workloads)?

@bolinocroustibat bolinocroustibat self-assigned this Jan 19, 2026
@bolinocroustibat bolinocroustibat force-pushed the python-3.14 branch 2 times, most recently from 1b2a234 to 6f34388 Compare January 19, 2026 13:14
@bolinocroustibat bolinocroustibat marked this pull request as draft January 19, 2026 13:39
@bolinocroustibat bolinocroustibat force-pushed the python-3.14 branch 2 times, most recently from 68929ce to af22889 Compare March 4, 2026 15:14
@bolinocroustibat bolinocroustibat marked this pull request as ready for review March 4, 2026 15:33
@bolinocroustibat bolinocroustibat changed the title chore: use Python 3.14 perf: use Python 3.14 Mar 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant