diff --git a/src/main/java/dev/morling/onebrc/CalculateAverage_filiphr.java b/src/main/java/dev/morling/onebrc/CalculateAverage_filiphr.java index f75d99e..966da7c 100644 --- a/src/main/java/dev/morling/onebrc/CalculateAverage_filiphr.java +++ b/src/main/java/dev/morling/onebrc/CalculateAverage_filiphr.java @@ -17,7 +17,6 @@ package dev.morling.onebrc; import java.io.IOException; import java.io.UncheckedIOException; -import java.math.BigDecimal; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.MappedByteBuffer; @@ -40,6 +39,7 @@ import java.util.stream.StreamSupport; * Initial submission: 1m 35s * Adding memory mapped files: 0m 55s (based on bjhara's submission) * Using big decimal and iterating the buffer once: 0m 20s + * Using long parse: 0m 11s *
* Using 21.0.1 Temurin with ShenandoahGC on Macbook (Intel) Pro
* `sdk use java 21.0.1-tem`
@@ -59,12 +59,12 @@ public class CalculateAverage_filiphr {
private static final class Measurement {
- private double min = Long.MAX_VALUE;
- private double max = Long.MIN_VALUE;
- private double sum = 0L;
+ private long min = Long.MAX_VALUE;
+ private long max = Long.MIN_VALUE;
+ private long sum = 0L;
private long count = 0L;
- private void add(double value) {
+ private void add(long value) {
this.min = Math.min(this.min, value);
this.max = Math.max(this.max, value);
this.sum += value;
@@ -82,7 +82,7 @@ public class CalculateAverage_filiphr {
@Override
public String toString() {
- return round(min) + "/" + round((sum) / count) + "/" + round(max);
+ return round(min / 10.0) + "/" + round((sum / 10.0) / count) + "/" + round(max / 10.0);
}
private double round(double value) {
@@ -143,7 +143,10 @@ public class CalculateAverage_filiphr {
Map