Roy van Rijn 
							
						 
					 
					
						
						
							
						
						7ced63f460 
					 
					
						
						
							
							Rewrote to always read 16 bytes, this has less instructions on perf. ( #562 )  
						
						... 
						
						
						
						It doesn't make a lot of sense since quite some code can be written shorter, but this is what gives the best numbers. 
						
						
					 
					
						2024-01-23 20:37:09 +01:00 
						 
				 
			
				
					
						
							
							
								3j5a 
							
						 
					 
					
						
						
							
						
						a9a05599cd 
					 
					
						
						
							
							CalculateAverage_3j5a off-the-shelf Java components + ArraysSupport ( #566 )  
						
						... 
						
						
						
						* off the shell Java components, curious about official runtime results. thnx
my laptop results are around 12 seconds, e.g:
87.66user 1.32system 0:12.11elapsed 734%CPU (0avgtext+0avgdata 13980924maxresident)k
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i5-8400H CPU @ 2.50GHz
* off-the-shelf Java components... curious about official runtime results. thnx
laptop results are around 11 seconds, e.g:
./calculate_average_3j5a.sh  81.46s user 1.36s system 758% cpu 10.917 total
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i5-8400H CPU @ 2.50GHz
* off-the-shelf Java components + ArraysSupport..
laptop results are around 10.2 seconds, e.g:
./calculate_average_3j5a.sh  75.02s user 1.31s system 750% cpu 10.175 total
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i5-8400H CPU @ 2.50GHz
* method handle...
* full buffer read attempt
* MH
* MH cleanup 
						
						
					 
					
						2024-01-23 20:31:45 +01:00 
						 
				 
			
				
					
						
							
							
								Mathias Bjerke 
							
						 
					 
					
						
						
							
						
						337642d1ec 
					 
					
						
						
							
							1brc contribution from mattiz (first attempt) ( #567 )  
						
						... 
						
						
						
						* Contribution from mattiz
* Formatted code 
						
						
					 
					
						2024-01-23 20:28:58 +01:00 
						 
				 
			
				
					
						
							
							
								karthikeyan97 
							
						 
					 
					
						
						
							
						
						292edc629f 
					 
					
						
						
							
							fine tuning performance further ( #526 )  
						
						... 
						
						
						
						* final comit
changing using mappedbytebuffer
changes before using unsafe address
using unsafe
* using graalvm,correct unsafe mem implementation
---------
Co-authored-by: Karthikeyans <karthikeyan.sn@zohocorp.com > 
						
						
					 
					
						2024-01-23 20:21:52 +01:00 
						 
				 
			
				
					
						
							
							
								Roman Musin 
							
						 
					 
					
						
						
							
						
						6c0949969a 
					 
					
						
						
							
							Native image + a few smaller optimisations ( #564 )  
						
						... 
						
						
						
						* Inline parsing name and station to avoid constantly updating the offset field (-100ms)
* Remove Worker class, inline the logic into lambda
* Accumulate results in an int matrix instead of using result row (-50ms)
* Use native image 
						
						
					 
					
						2024-01-23 20:19:07 +01:00 
						 
				 
			
				
					
						
							
							
								yourwass 
							
						 
					 
					
						
						
							
						
						ba793e88cd 
					 
					
						
						
							
							Add Yourwass take on the challenge ( #532 )  
						
						... 
						
						
						
						* Uses vector api for city name parsing and for hash index collision resolution
* Uses lookup tables for temperature parsing 
						
						
					 
					
						2024-01-23 20:04:55 +01:00 
						 
				 
			
				
					
						
							
							
								Yann Moisan 
							
						 
					 
					
						
						
							
						
						b3420d9348 
					 
					
						
						
							
							improvements ( #521 )  
						
						... 
						
						
						
						- inline computeIfAbsent
- replace arraycopy by copyOfRange
Co-authored-by: Yann Moisan <yann@zen.ly > 
						
						
					 
					
						2024-01-23 19:58:10 +01:00 
						 
				 
			
				
					
						
							
							
								Parker Timmins 
							
						 
					 
					
						
						
							
						
						c886aaba34 
					 
					
						
						
							
							Deploy v2 for parkertimmins ( #524 )  
						
						... 
						
						
						
						* Deploy v2 for parkertimmins
Main changes:
- fix hash which masked incorrectly
- do station equality check in simd
- make station array length multiple of 32
- search for newline rather than semicolon
* Fix bug - entries were being skipped between batches
At the boundary between two batches, the first batch would stop after
crossing a limit with a padding of 200 characters applied. The next
batch should then start looking for the first full entry after the
padding. This padding logic had been removed when starting a batch. For
this reason, entries starting in the 200 character padding between
batches were skipped. 
						
						
					 
					
						2024-01-23 19:43:34 +01:00 
						 
				 
			
				
					
						
							
							
								Artsiom Korzun 
							
						 
					 
					
						
						
							
						
						d858959097 
					 
					
						
						
							
							parse value before going to map ( #548 )  
						
						... 
						
						
						
						parse value before going to map 
						
						
					 
					
						2024-01-23 19:38:32 +01:00 
						 
				 
			
				
					
						
							
							
								Gaurav Anantrao Deshmukh 
							
						 
					 
					
						
						
							
						
						46d2058bd4 
					 
					
						
						
							
							First optimal solution attempt ( #539 )  
						
						... 
						
						
						
						* First optimal attempt
* Removing debug lines
* Using default string equals method
---------
Co-authored-by: Gaurav Deshmukh <deshmgau@amazon.com > 
						
						
					 
					
						2024-01-23 19:32:03 +01:00 
						 
				 
			
				
					
						
							
							
								Gerd Aschemann 
							
						 
					 
					
						
						
							
						
						c232346e87 
					 
					
						
						
							
							#540  Cache SDKman ( #554 )  
						
						... 
						
						
						
						IMPORTANT: Only use SDKman provided Java - System JDK no longer installed! 
						
						
					 
					
						2024-01-23 19:13:13 +01:00 
						 
				 
			
				
					
						
							
							
								Jeevjyot Singh Chhabda 
							
						 
					 
					
						
						
							
						
						415b3eb5c5 
					 
					
						
						
							
							b1rc challenge by @jeevjyot ( #551 )  
						
						... 
						
						
						
						* b1rc challenge
* fixed a rounding error
* added the file back
* fixed file
* removed a file
---------
Co-authored-by: Jeevjyot Singh Chhabda <jeevjyotsinghchhabda@Jeevjyots-MBP.hsd1.ca.comcast.net > 
						
						
					 
					
						2024-01-23 18:43:58 +01:00 
						 
				 
			
				
					
						
							
							
								Jaromir Hamala 
							
						 
					 
					
						
						
							
						
						2c432abb96 
					 
					
						
						
							
							jerrinot's improvement - fast-path for short keys ( #545 )  
						
						... 
						
						
						
						* fast-path for keys<16 bytes
* fix off by one error
the mask is wrong for he 2nd word when len == 16
* less chunks per thread
seems like compact code wins. on my test box anyway. 
						
						
					 
					
						2024-01-23 18:29:22 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Kohn 
							
						 
					 
					
						
						
							
						
						2be84e09ee 
					 
					
						
						
							
							Add 1brc solution by @makohn ( #544 )  
						
						
						
						
					 
					
						2024-01-23 18:26:53 +01:00 
						 
				 
			
				
					
						
							
							
								Rene Schwietzke 
							
						 
					 
					
						
						
							
						
						6cf6da0c17 
					 
					
						
						
							
							Added environment docs ( #555 )  
						
						... 
						
						
						
						* Create ENVIRONMENT.md
* More intel added 
						
						
					 
					
						2024-01-23 18:21:36 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						95c0fb06b0 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-23 18:16:12 +01:00 
						 
				 
			
				
					
						
							
							
								Van Phu DO 
							
						 
					 
					
						
						
							
						
						98a8279669 
					 
					
						
						
							
							use thomaswue trick, use parallelism, slightly faster ( #560 )  
						
						
						
						
					 
					
						2024-01-23 16:41:25 +01:00 
						 
				 
			
				
					
						
							
							
								Dr Ian Preston 
							
						 
					 
					
						
						
							
						
						8bae1b8781 
					 
					
						
						
							
							Use simd for name comparison ( #568 )  
						
						... 
						
						
						
						Co-authored-by: Ian Preston <ianopolous@protonmail.com > 
						
						
					 
					
						2024-01-23 16:37:33 +01:00 
						 
				 
			
				
					
						
							
							
								Antonio Muñoz 
							
						 
					 
					
						
						
							
						
						f7febea2f6 
					 
					
						
						
							
							tonivade implementation (try 2) ( #541 )  
						
						... 
						
						
						
						* tonivade implementation
* synchronized block performs better than ReentrantLock
* remove ConcurrentHashMap
* refactor
* use HashMap.newHashMap
* change double to int
* minor refactor
* fix 
						
						
					 
					
						2024-01-23 16:35:05 +01:00 
						 
				 
			
				
					
						
							
							
								Elliot Barlas 
							
						 
					 
					
						
						
							
						
						df891354d3 
					 
					
						
						
							
							Inline and optimize value parsing code for each of the four semicolon position processing branches. This provides a small but noticeable speed-up. It also expands and obfuscates the code, unfortunately. ( #563 )  
						
						
						
						
					 
					
						2024-01-23 16:31:04 +01:00 
						 
				 
			
				
					
						
							
							
								Sarkie 
							
						 
					 
					
						
						
							
						
						e16ad7660d 
					 
					
						
						
							
							Update README.md to add the _baseline ( #552 )  
						
						
						
						
					 
					
						2024-01-22 11:00:01 +01:00 
						 
				 
			
				
					
						
							
							
								Jason Nochlin 
							
						 
					 
					
						
						
							
						
						b374643a1f 
					 
					
						
						
							
							evaluate.sh: Add note for "using Unsafe" ( #547 )  
						
						... 
						
						
						
						* fix typo
* automatically label entries using Unsafe
* fix for entry in src/main/java-22/
* backfill leaderboard
---------
Co-authored-by: Jason Nochlin <hundredwatt@users.noreply.github.com > 
						
						
					 
					
						2024-01-22 09:20:26 +01:00 
						 
				 
			
				
					
						
							
							
								Li Lin 
							
						 
					 
					
						
						
							
						
						d2639b7ce1 
					 
					
						
						
							
							Add linl33's implementation ( #503 )  
						
						... 
						
						
						
						* Add linl33's implementation
* Update evaluate.sh
---------
Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com > 
						
						
					 
					
						2024-01-21 21:14:05 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						81963f963c 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-21 20:39:20 +01:00 
						 
				 
			
				
					
						
							
							
								Artsiom Korzun 
							
						 
					 
					
						
						
							
						
						ac4805ee45 
					 
					
						
						
							
							subprocess spawner ( #542 )  
						
						
						
						
					 
					
						2024-01-21 20:23:48 +01:00 
						 
				 
			
				
					
						
							
							
								Roy van Rijn 
							
						 
					 
					
						
						
							
						
						d8b071c878 
					 
					
						
						
							
							Reverting ByteBuffer idea, using Thomas's trick instead. ( #538 )  
						
						
						
						
					 
					
						2024-01-21 20:15:07 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Wuerthinger 
							
						 
					 
					
						
						
							
						
						d0a28599c2 
					 
					
						
						
							
							Tuning and subprocess spawn for thomaswue ( #533 )  
						
						... 
						
						
						
						* Some clean up, small-scale tuning, and reduce complexity when handling longer names.
* Do actual work in worker subprocess. Main process returns immediately
and OS clean up of the mmap continues in the subprocess.
* Update minor Graal version after CPU release.
* Turn GC back to epsilon GC (although it does not seem to make a
difference).
* Minor tuning for another +1%. 
						
						
					 
					
						2024-01-21 20:13:48 +01:00 
						 
				 
			
				
					
						
							
							
								Artsiom Korzun 
							
						 
					 
					
						
						
							
						
						6b95ac6113 
					 
					
						
						
							
							optimize branches ( #534 )  
						
						
						
						
					 
					
						2024-01-21 19:54:43 +01:00 
						 
				 
			
				
					
						
							
							
								Elliot Barlas 
							
						 
					 
					
						
						
							
						
						47269cf30b 
					 
					
						
						
							
							Adjust rolling hash function to operate at int-scale rather than byte-scale. Ensure 8-byte alignment in key buffer for faster comparisons. ( #523 )  
						
						
						
						
					 
					
						2024-01-21 19:38:32 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						d135bd9521 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-21 18:01:52 +01:00 
						 
				 
			
				
					
						
							
							
								Roman Musin 
							
						 
					 
					
						
						
							
						
						7bfc7eaec6 
					 
					
						
						
							
							Reduce allocations and heap size ( #525 )  
						
						... 
						
						
						
						* Reduce allocations
* Shrink the heap size
* Calculate hash when reading name  (50-100ms difference)
* no need to reverse bytes
* bump heap size 
						
						
					 
					
						2024-01-21 18:01:23 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						3e1951379a 
					 
					
						
						
							
							#104  Running tests for PRs  
						
						
						
						
					 
					
						2024-01-21 17:44:35 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						38c3e0f1ee 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-21 13:43:40 +01:00 
						 
				 
			
				
					
						
							
							
								Van Phu DO 
							
						 
					 
					
						
						
							
						
						410425c833 
					 
					
						
						
							
							reorganize code, little bit faster ( #509 )  
						
						
						
						
					 
					
						2024-01-21 13:25:18 +01:00 
						 
				 
			
				
					
						
							
							
								kumarsaurav123 
							
						 
					 
					
						
						
							
						
						8ba67cbc6d 
					 
					
						
						
							
							Use Array to store results instead of grouping by and custom class ( #522 )  
						
						
						
						
					 
					
						2024-01-21 12:50:36 +01:00 
						 
				 
			
				
					
						
							
							
								adri 
							
						 
					 
					
						
						
							
						
						0a7726cc64 
					 
					
						
						
							
							Improving first iteration by avoiding string creation as much as possible ( #516 )  
						
						... 
						
						
						
						- It avoids creating unnecessary Strings objects and handles with the station names with its djb2 hashes instead
- Initializes hashmaps with capacity and load factor
- Adds -XX:+AlwaysPreTouch 
						
						
					 
					
						2024-01-20 21:27:34 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						36ffed1315 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-20 21:02:06 +01:00 
						 
				 
			
				
					
						
							
							
								giovannicuccu 
							
						 
					 
					
						
						
							
						
						2c1264def9 
					 
					
						
						
							
							Solution without unsafe ( #507 )  
						
						... 
						
						
						
						Co-authored-by: Giovanni Cuccu <gcuccu@imolainformatica.it > 
						
						
					 
					
						2024-01-20 21:01:43 +01:00 
						 
				 
			
				
					
						
							
							
								Shivam Agarwal 
							
						 
					 
					
						
						
							
						
						f06de5faab 
					 
					
						
						
							
							Add 0xshivamagarwal Implementation ( #508 )  
						
						... 
						
						
						
						* 0xshivamagarwal implementation
* .
---------
Co-authored-by: Shivam Agarwal <> 
						
						
					 
					
						2024-01-20 20:54:04 +01:00 
						 
				 
			
				
					
						
							
							
								karthikeyan97 
							
						 
					 
					
						
						
							
						
						f49a92019e 
					 
					
						
						
							
							using unsafe alone ( #512 )  
						
						... 
						
						
						
						* final comit
changing using mappedbytebuffer
changes before using unsafe address
using unsafe
* using graalvm,correct unsafe mem implementation
---------
Co-authored-by: Karthikeyans <karthikeyan.sn@zohocorp.com > 
						
						
					 
					
						2024-01-20 20:49:54 +01:00 
						 
				 
			
				
					
						
							
							
								Yann Moisan 
							
						 
					 
					
						
						
							
						
						ac26c8b644 
					 
					
						
						
							
							Improved version based on rafaelmerino ( #511 )  
						
						... 
						
						
						
						* files created by create_fork.sh
* use indexOf
* improved implementation based on rafaelmerino
---------
Co-authored-by: Yann Moisan <yann@zen.ly > 
						
						
					 
					
						2024-01-20 20:33:14 +01:00 
						 
				 
			
				
					
						
							
							
								Roman Musin 
							
						 
					 
					
						
						
							
						
						9100ed6316 
					 
					
						
						
							
							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 
						
						
					 
					
						2024-01-20 20:30:25 +01:00 
						 
				 
			
				
					
						
							
							
								Dr Ian Preston 
							
						 
					 
					
						
						
							
						
						062f2bbecf 
					 
					
						
						
							
							Introducing the vector api. 1s faster on 4 core i7 ( #506 )  
						
						... 
						
						
						
						Co-authored-by: Ian Preston <ianopolous@protonmail.com > 
						
						
					 
					
						2024-01-20 20:09:40 +01:00 
						 
				 
			
				
					
						
							
							
								Jaromir Hamala 
							
						 
					 
					
						
						
							
						
						114ba76d20 
					 
					
						
						
							
							jerrinot's improvement ( #514 )  
						
						... 
						
						
						
						* refactoring
* segregated heap for names
also a different hashing function. turns out hashing just first word is good enough 
						
						
					 
					
						2024-01-20 20:06:31 +01:00 
						 
				 
			
				
					
						
							
							
								Yonatan Graber 
							
						 
					 
					
						
						
							
						
						e1a0b79259 
					 
					
						
						
							
							yonatang solution: a jdk8 friendly, no unsafe code, epsilon-gc friendly solution ( #499 )  
						
						... 
						
						
						
						* 1bc challenge, but one that will run using jdk 8 without unsafe and still do reasonably well.
* Better hashtable
* the fastest GC is no GC
* cleanups
* increased hash size
* removed Playground.java
* collision-handling allocation free hashmap
* formatting 
						
						
					 
					
						2024-01-20 15:02:55 +01:00 
						 
				 
			
				
					
						
							
							
								Xylitol 
							
						 
					 
					
						
						
							
						
						8353a1cb3d 
					 
					
						
						
							
							Processing byte array backwards ( #504 )  
						
						
						
						
					 
					
						2024-01-20 14:04:19 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						51f8ecfa43 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-20 14:01:46 +01:00 
						 
				 
			
				
					
						
							
							
								Elliot Barlas 
							
						 
					 
					
						
						
							
						
						eaf87689f5 
					 
					
						
						
							
							Use Arena MemorySegments rather than ByteBuffers. ( #505 )  
						
						
						
						
					 
					
						2024-01-20 13:56:27 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Morling 
							
						 
					 
					
						
						
							
						
						f435d64dff 
					 
					
						
						
							
							Leaderboard update  
						
						
						
						
					 
					
						2024-01-19 22:17:54 +01:00 
						 
				 
			
				
					
						
							
							
								Roy van Rijn 
							
						 
					 
					
						
						
							
						
						7c983f3d66 
					 
					
						
						
							
							Added dedicated reader ( #493 )  
						
						... 
						
						
						
						Started running perf, perhaps this helps. No idea how to use it yet 
						
						
					 
					
						2024-01-19 22:15:49 +01:00