Status Feb 4: The final leaderboards have been published. Congrats to all the winners, and a big thank you to everyone participating in this challenge as well as to everyone helping to organize it!
Status Feb 3: All entries have been evaluated and I am in the process of finalizing the leaderboards.
Status Feb 1: The challenge has been closed for new submissions. No new pull requests for adding submissions are accepted at this time. Pending PRs will be evaluated over the next few days.
Status Jan 31: The challenge will close today at midnight UTC.
Status Jan 12: As there has been such a large number of entries to this challenge so far (100+), and this is becoming hard to manage, please only create new submissions if you expect them to run in 10 seconds or less on the evaluation machine.
Status Jan 1: This challenge is open for submissions!
Sponsorship
A big thank you to my employer Decodable for funding the evaluation environment and supporting this challenge!
The One Billion Row Challenge (1BRC) is a fun exploration of how far modern Java can be pushed for aggregating one billion rows from a text file. Grab all your (virtual) threads, reach out to SIMD, optimize your GC, or pull any other trick, and create the fastest implementation for solving this task!
<img src="1brc.png" alt="1BRC" style="display: block; margin-left: auto; margin-right: auto; margin-bottom:1em; width: 50%;">The text file contains temperature values for a range of weather stations.
Each row is one measurement in the format <string: station name>;<double: measurement>, with the measurement value having exactly one fractional digit.
The following shows ten rows as an example:
Hamburg;12.0
Bulawayo;8.9
Palembang;38.8
St. John's;15.2
Cracow;12.6
Bridgetown;26.9
Istanbul;6.2
Roseau;34.4
Conakry;31.2
Istanbul;23.0
The task is to write a Java program which reads the file, calculates the min, mean, and max temperature value per weather station, and emits the results on stdout like this
(i.e. sorted alphabetically by station name, and the result values per station in the format <min>/<mean>/<max>, rounded to one fractional digit):
{Abha=-23.0/18.0/59.2, Abidjan=-16.2/26.0/67.3, Abéché=-10.0/29.4/69.0, Accra=-10.1/26.4/66.4, Addis Ababa=-23.7/16.0/67.0, Adelaide=-27.8/17.3/58.5, ...}
Submit your implementation by Jan 31 2024 and become part of the leaderboard!
These are the results from running all entries into the challenge on eight cores of a Hetzner AX161 dedicated server (32 core AMD EPYC™ 7502P (Zen2), 128 GB RAM).
| # | Result (m:s.ms) | Implementation | JDK | Submitter | Notes | Certificates |
|---|---|---|---|---|---|---|
| 1 | 00:01.535 | link | 21.0.2-graal | Thomas Wuerthinger, Quan Anh Mai, Alfonso² Peterssen | GraalVM native binary, uses Unsafe | Certificate |
| 2 | 00:01.587 | link | 21.0.2-graal | Artsiom Korzun | GraalVM native binary, uses Unsafe | Certificate |
| 3 | 00:01.608 | link | 21.0.2-graal | Jaromir Hamala | GraalVM native binary, uses Unsafe | Certificate |
| 00:01.880 | link | 21.0.1-open | Serkan ÖZAL | uses Unsafe | Certificate | |
| 00:01.921 | link | 21.0.2-graal | Van Phu DO | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.018 | link | 21.0.2-graal | Stephen Von Worley | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.157 | link | 21.0.2-graal | Roy van Rijn | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.319 | link | 21.0.2-graal | Yavuz Tas | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.332 | link | 21.0.2-graal | Marko Topolnik | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.367 | link | 21.0.1-open | Quan Anh Mai | uses Unsafe | Certificate | |
| 00:02.507 | link | 21.0.1-open | gonix | uses Unsafe | Certificate | |
| 00:02.557 | link | 21.0.1-open | yourwass | uses Unsafe | Certificate | |
| 00:02.820 | link | 22.ea.32-open | Li Lin | uses Unsafe | Certificate | |
| 00:02.995 | link | 21.0.2-graal | tivrfoa | GraalVM native binary, uses Unsafe | Certificate | |
| 00:02.997 | link | 21.0.1-open | gonix | Certificate | ||
| 00:03.095 | link | 21.0.2-graal | Jamal Mulla | GraalVM native binary, uses Unsafe | Certificate | |
| 00:03.210 | link | 21.0.1-open | Quan Anh Mai | Certificate | ||
| 00:03.298 | link | 21.0.1-graal | Subrahmanyam | uses Unsafe | Certificate | |
| 00:03.431 | link | 21.0.1-graal | Roman Musin | GraalVM native binary, uses Unsafe | Certificate | |
| 00:03.469 | link | 21.0.2-graal | Elliot Barlas | GraalVM native binary, uses Unsafe | Certificate | |
| 00:03.698 | link | 21.0.1-graal | Jason Nochlin | Certificate | ||
| 00:03.785 | link | 21.0.2-graal | zerninv | GraalVM native binary, uses Unsafe | Certificate | |
| 00:03.820 | link | 21.0.2-graal | John Ziamos | GraalVM native binary, uses Unsafe | Certificate | |
| 00:03.902 | link | 21.0.1-open | Juan Parera | Certificate | ||
| 00:03.966 | link | 21.0.1-open | Jin Cong Ho | uses Unsafe | Certificate | |
| 00:03.991 | link | 21.0.1-graal | Vaidhy Mayilrangam | uses Unsafe | Certificate | |
| 00:04.066 | link | 21.0.1-open | JesseVanRooy | uses Unsafe | Certificate | |
| 00:04.101 | link | 21.0.2-graal | Jaime Polidura | GraalVM native binary, uses Unsafe | Certificate | |
| 00:04.209 | link | 21.0.1-open | Giovanni Cuccu | Certificate | ||
| 00:04.474 | link | 21.0.1-open | Roman Stoffel | Certificate | ||
| 00:04.676 | link | 21.0.2-tem | [Peter |


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创 建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

