Loading...
100 Million Row Challenge

Parsing 100M rows
with pure PHP

Parse a dataset of 100 million page visits from CSV into a sorted JSON file. Fork the repo, implement Parser::parse(), and submit a PR. How fast can you go?

Sponsored by JetBrains PhpStorm & Tideways

Current Standings

Top 3 multithread performers based on the latest benchmark run. Positions may change until the challenge ends. Single-thread has a separate prize.

The Race

Performance improvements over time for the top contenders.

Leaderboard

Live

All submissions ranked by execution time.

Rank Participant Time Submitted

About the Challenge

Rules, prizes, and server specifications.

How It Works

Parse a dataset of 100 million page visits from CSV into a sorted JSON file using pure PHP. Each entry maps a URL path to daily visit counts, sorted by date ascending.

Fork the repo, implement Parser::parse(), and submit a PR. Results are benchmarked on a dedicated Mac Mini M1 with 12GB RAM.

Prizes
1st Place
  • PhpStorm Elephpant
  • Tideways Elephpant
  • JetBrains All Products (1yr)
  • AI Ultimate (3mo)
  • Tideways Team (1yr)
2nd Place
  • PhpStorm Elephpant
  • Tideways Elephpant
  • JetBrains All Products (1yr)
  • AI Ultimate (3mo)
3rd Place
  • PhpStorm Elephpant
  • Tideways Elephpant
  • JetBrains All Products (1yr)
Single-thread
  • PhpStorm Elephpant
  • JetBrains All Products (1yr)
Random draw
  • PhpStorm Elephpant
  • JetBrains All Products (1yr)
Rules

Solutions must be written in PHP only. No FFI, no external tools, no internet access. Your script may only work within the project directory.

The solution must validate against the real dataset. Improvements of 0.01s or more are counted. Ties are broken by submission time.

Server Specs

Mac Mini M1 with 12GB available RAM. JIT is disabled. OPcache is disabled.

Each submission is run individually on the dedicated server to prevent bias. Results are manually verified before benchmarking.