aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/morling/onebrc/CalculateAverage_ebarlas.java
Commit message (Collapse)AuthorAgeFilesLines
* Inline and optimize value parsing code for each of the four semicolon ↵Elliot Barlas2024-01-231-47/+112
| | | | position processing branches. This provides a small but noticeable speed-up. It also expands and obfuscates the code, unfortunately. (#563)
* Adjust rolling hash function to operate at int-scale rather than byte-scale. ↵Elliot Barlas2024-01-211-22/+17
| | | | Ensure 8-byte alignment in key buffer for faster comparisons. (#523)
* Use Arena MemorySegments rather than ByteBuffers. (#505)Elliot Barlas2024-01-201-120/+137
|
* Consider file size when calculating partition count. Add simple fast-path ↵Elliot Barlas2024-01-141-2/+14
| | | | optimization to equals method.
* Consume four bytes at a time from buffer using getInt. Store key with unsafe ↵Elliot Barlas2024-01-101-83/+142
| | | | int array rather than byte array. Use custom equals rather than Arrays equals.
* Continue unrolling and inlining value parser. Make targeted use of ↵Elliot Barlas2024-01-071-43/+78
| | | | ByteBuffer.getInt() instead of ByteBuffer.get(). Switch from GraalVM CE to GraalVM. (#201)
* Implement imperative state machine for floating point parser rather then ↵Elliot Barlas2024-01-051-28/+35
| | | | generic, adaptive loop.
* Elliot Barlas: Use proper hash key collision detection schemeElliot Barlas2024-01-041-30/+67
| | | | | | | * Use open-addressing scheme to deal with hash table collisions. Reduce concurrency from 16 to 8. Use bit mask rather than mod operator to confine hash code to table range. * Properly handle file partitions that reside entirely within a line. * Reorder statements in doProcessBuffer.
* Auto reformat classesFilip Hrisafov2024-01-041-8/+16
|
* Adding Elliot Barlas' submissionElliot Barlas2024-01-031-0/+209