From 9100ed6316207b6963d31d3ae604a317932d2d13 Mon Sep 17 00:00:00 2001 From: Roman Musin <995612+roman-r-m@users.noreply.github.com> Date: Sat, 20 Jan 2024 19:30:25 +0000 Subject: Epsilon GC + a number of other small tweaks (#513) * Version 3 * Use SWAR algorithm from netty for finding a symbol in a string * Faster equals - store the remainder in a long field (- 0.5s) * optimise parsing numbers - prep * Keep tweaking parsing logic * Rewrote number parsing may be a tiby bit faster it at all * Epsilon GC --- calculate_average_roman-r-m.sh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'calculate_average_roman-r-m.sh') diff --git a/calculate_average_roman-r-m.sh b/calculate_average_roman-r-m.sh index 47626a1..fe468dc 100755 --- a/calculate_average_roman-r-m.sh +++ b/calculate_average_roman-r-m.sh @@ -16,4 +16,10 @@ # JAVA_OPTS="--enable-preview -XX:+UseTransparentHugePages" + +# epsilon GC needs enough memory or it makes things worse +# see https://stackoverflow.com/questions/58087596/why-are-repeated-memory-allocations-observed-to-be-slower-using-epsilon-vs-g1 +# 2GB seems to be the sweet spot +JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:-EnableJVMCI -XX:+UseEpsilonGC -Xmx2G -Xms2G -XX:+AlwaysPreTouch" + java $JAVA_OPTS --class-path target/average-1.0.0-SNAPSHOT.jar dev.morling.onebrc.CalculateAverage_roman_r_m -- cgit v1.2.3