Updating leaderboard, formatting, avoiding OOME

This commit is contained in:
Gunnar Morling 2024-01-06 18:20:44 +01:00
parent 40acde7dd5
commit 32bef5ac96
3 changed files with 24 additions and 22 deletions

View File

@ -50,13 +50,15 @@ Submit your implementation by Jan 31 2024 and become part of the leaderboard!
| | 00:14.411| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_deemkeen.java)| 21.0.1-open| [deemkeen](https://github.com/deemkeen)|
| | 00:16.196| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_artpar.java)| 21.0.1-open| [Parth Mudgal](https://github.com/artpar)|
| | 00:17.905| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_lawrey.java)| 21.0.1-open| [Peter Lawrey](https://github.com/peter-lawrey)|
| | 00:18.866| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_imrafaelmerino.java)| 21.0.1-graal| [Rafael Merino García](https://github.com/imrafaelmerino)|
| | 00:18.789| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_palmr.java)| 21.0.1-open| [Nick Palmer](https://github.com/palmr)|
| | 00:19.561| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_gabrielreid.java)| 21.0.1-open| [Gabriel Reid](https://github.com/gabrielreid)|
| | 00:22.709| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_seijikun.java)| 21.0.1-graal | [Markus Ebner](https://github.com/seijikun)|
| | 00:23.078| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_richardstartin.java)| 21.0.1-open | [Richard Startin](https://github.com/richardstartin)|
| | 00:24.351| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_yavuztas.java)| 21.0.1-graal | [Yavuz Tas](https://github.com/yavuztas)|
| | 00:24.879| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_davecom.java)| 21.0.1-open | [David Kopec](https://github.com/davecom)|
| | 00:26.576| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_fatroom.java)| 21.0.1-open | [Roman Romanchuk ](https://github.com/fatroom)|
| | 00:26.253| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_flippingbits.java)| 21.0.1-graal | [Stefan Sprenger](https://github.com/flippingbits)|
| | 00:26.576| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_fatroom.java)| 21.0.1-open | [Roman Romanchuk](https://github.com/fatroom)|
| | 00:27.787| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_nstng.java)| 21.0.1-open | [Nils Semmelrock](https://github.com/nstng)|
| | 00:28.167| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_truelive.java)| 21.0.1-open | [Roman Schweitzer](https://github.com/truelive)|
| | 00:32.764| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_moysesb.java)| 21.0.1-open | [Moysés Borges Furtado](https://github.com/moysesb)|
@ -66,6 +68,7 @@ Submit your implementation by Jan 31 2024 and become part of the leaderboard!
| | 00:50.547| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_padreati.java)| 21.0.1-open | [Aurelian Tutuianu](https://github.com/padreati)|
| | 00:51.678| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_twobiers.java)| 21.0.1-tem | [Tobi](https://github.com/twobiers)|
| | 00:53.679| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_criccomini.java)| 21.0.1-open | [Chris Riccomini](https://github.com/criccomini)|
| | 00:59.377| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_hchiorean.java)| 21.0.1-open | [Horia Chiorean](https://github.com/hchiorean)|
| | 01:24.721| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_Ujjwalbharti.java)| 21.0.1-open | [Ujjwal Bharti](https://github.com/Ujjwalbharti)|
| | 01:27.912| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_jgrateron.java)| 21.0.1-open | [Jairo Graterón](https://github.com/jgrateron)|
| | 01:58.536| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_kuduwa_keshavram.java)| 21.0.1-open | [Kuduwa Keshavram](https://github.com/kuduwa_keshavram)|

2
calculate_average_hchiorean.sh Normal file → Executable file
View File

@ -15,5 +15,5 @@
# limitations under the License.
#
JAVA_OPTS="-Xms1000M"
JAVA_OPTS="-Xms1000M -Xmx16G"
time java $JAVA_OPTS --class-path target/average-1.0.0-SNAPSHOT.jar dev.morling.onebrc.CalculateAverage_hchiorean

View File

@ -104,8 +104,7 @@ public class CalculateAverage_imrafaelmerino {
}
private static Map<String, Stat> calculateStats(String file,
long chunkSize
)
long chunkSize)
throws IOException {
try (var fileChannel = FileChannel.open(Paths.get(file),
@ -122,8 +121,7 @@ public class CalculateAverage_imrafaelmerino {
}
private static Map<String, Stat> combine(Map<String, Stat> xs,
Map<String, Stat> ys
) {
Map<String, Stat> ys) {
Map<String, Stat> result = new HashMap<>();
@ -173,8 +171,7 @@ public class CalculateAverage_imrafaelmerino {
}
private static Stream<ByteBuffer> fileMemoryStream(FileChannel fileChannel,
long chunkSize
)
long chunkSize)
throws IOException {
var spliterator = Spliterators.spliteratorUnknownSize(fileMemoryIterator(fileChannel,
@ -203,12 +200,14 @@ public class CalculateAverage_imrafaelmerino {
Math.min(chunkSize,
size - start));
var limmit = buffer.limit() - 1;
while (buffer.get(limmit) != '\n') limmit--;
while (buffer.get(limmit) != '\n')
limmit--;
limmit++;
buffer.limit(limmit);
start += limmit;
return buffer;
} catch (IOException ex) {
}
catch (IOException ex) {
throw new UncheckedIOException(ex);
}
}
@ -223,8 +222,7 @@ public class CalculateAverage_imrafaelmerino {
private long count = 0L;
public static Stat combine(Stat m1,
Stat m2
) {
Stat m2) {
var stat = new Stat();
stat.min = Math.min(m1.min, m2.min);
stat.max = Math.max(m1.max, m2.max);
@ -256,7 +254,8 @@ public class CalculateAverage_imrafaelmerino {
try {
ForkJoinPool.managedBlock(managedBlocker);
return managedBlocker.getResult();
} catch (InterruptedException e) {
}
catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RuntimeException(e);
}