aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java
diff options
context:
space:
mode:
authorRoman Stoffel <roman.stoffel@gamlor.info>2024-01-31 18:13:08 +0100
committerGitHub <noreply@github.com>2024-01-31 18:13:08 +0100
commitb529ef2a59c7df8f435ff7b1fc91362457180498 (patch)
tree93038cf3ea697d1053352dff7247d8ce89402266 /src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java
parent3cc4fc85d83122eba8944036691d00e195b6aa57 (diff)
Gamlerhart Last Update: Disabling GC (#636)
* Disable The GC Cuts off sometimes up to 1 seconds of runtime on my machine. * Remove Confusing Byte-Order Parameter Bytes have no Byte-Order ;) * Provide More Memory to Run the 10K set * Fix Comparison Function
Diffstat (limited to 'src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java')
-rw-r--r--src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java b/src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java
index 5d0a4bd..4d44494 100644
--- a/src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java
+++ b/src/main/java/dev/morling/onebrc/CalculateAverage_gamlerhart.java
@@ -31,8 +31,7 @@ import java.util.stream.Collectors;
import static java.lang.Double.doubleToRawLongBits;
import static java.lang.Double.longBitsToDouble;
-import static java.lang.foreign.ValueLayout.JAVA_BYTE;
-import static java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
+import static java.lang.foreign.ValueLayout.*;
/**
* Broad experiments in this implementation:
@@ -242,7 +241,7 @@ public class CalculateAverage_gamlerhart {
private boolean isSameEntry(MemorySegment file, long slotEntry, long pos, int len) {
long keyPos = (slotEntry & MASK_POS) >> SHIFT_POS;
int keyLen = (int) (slotEntry & MASK_LEN);
- var isSame = isSame(file, keyPos, pos, len);
+ var isSame = len == keyLen && isSame(file, keyPos, pos, len);
return isSame;
}
@@ -251,8 +250,8 @@ public class CalculateAverage_gamlerhart {
var i1len = i1 + vecLen;
var i2len = i2 + vecLen;
if (len < vecLen && i1len <= file.byteSize() && i2len <= file.byteSize()) {
- var v1 = byteVec.fromMemorySegment(file, i1, ByteOrder.BIG_ENDIAN);
- var v2 = byteVec.fromMemorySegment(file, i2, ByteOrder.BIG_ENDIAN);
+ var v1 = byteVec.fromMemorySegment(file, i1, ByteOrder.nativeOrder());
+ var v2 = byteVec.fromMemorySegment(file, i2, ByteOrder.nativeOrder());
var isTrue = v1.compare(VectorOperators.EQ, v2, allTrue.indexInRange(0, len));
return isTrue.trueCount() == len;
}