gunnarmorling / 1brc

1️⃣🐝🏎️ The One Billion Row Challenge -- A fun exploration of how quickly 1B rows from a text file can be aggregated with Java
https://www.morling.dev/blog/one-billion-row-challenge/
Apache License 2.0
6.14k stars 1.85k forks source link

Final version for thomaswue #674

Closed thomaswue closed 8 months ago

thomaswue commented 8 months ago

Check List:

Added detailed comments for the used native image flags, some code clean up for better naming, some minor tuning. This translates to around 2% faster on my machine, but let's see if this also holds up for the reference machine.

gunnarmorling commented 8 months ago

Nice!

Benchmark 1: timeout -v 300 ./calculate_average_thomaswue.sh 2>&1
  Time (mean ± σ):      1.830 s ±  0.011 s    [User: 0.002 s, System: 0.004 s]
  Range (min … max):    1.798 s …  1.836 s    10 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Summary
  thomaswue: trimmed mean 1.832794623615, raw times 1.7984286922400001,1.83378488024,1.8358817772400002,1.8351058012400001,1.8321136482400002,1.83353322124,1.83313856524,1.8319531362400001,1.83227779624,1.83044994024

Leaderboard

| # | Result (m:s.ms) | Implementation     | JDK | Submitter     | Notes     |
|---|-----------------|--------------------|-----|---------------|-----------|
|   | 00:01.832 | [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_thomaswue.java)| 21.0.2-graal | [Thomas Wuerthinger](https://github.com/thomaswue) | GraalVM native binary, uses Unsafe |