* Smoofie solution. Kinda slow but it was fun :)
* Format according to mvn build
* Fix semicolon detection, which cause invalid temperature parsing and subsequently segmentation faults due to counter addressing
* dpsoft: first submission
* minor clean up
* map with linear probing
* clean up
* update prepare
* clean up
* remove string format
* add credits
* fix format
* use prepare.sh
* graal 21.0.2
* fix differences
* clean up
* underflow protection
* improve segments generation logic
* clean up
* remove unnecessary alignment in findsegment
* new try
* fix number of segments
* CalculateAverage_pdrakatos
* Rename to be valid with rules
* CalculateAverage_pdrakatos
* Rename to be valid with rules
* Changes on scripts execution
* Fixing bugs causing scripts not to be executed
* Changes on prepare make it compatible
* Fixing passing all tests
* Increase direct memory allocation buffer
* Fixing memory problem causes heap space exception
* Fresh solution to optimize performance of the execution
* New Fresh solution with optimized performance with Custom Hashtable
* Increase maxperm size and xmx to avoid heap spaces error
* Exit earlier from loop when a new Result is created
* 3) Make a cache of long[] name to String, to avoid `ByteBuffer.allocate`
* and creating new UTF-8 strings. I didn't profile, so it's just a guess
* that this map will be a bit faster. Although it's outside the main loop, so
* not a big difference ...;
* 4) Exit earlier from loop if a new entry was created.
* revert: Remove cache to city name
* As I was not able to make it faster... make it slower
As I was not able to make it faster ... so I'll make it slower,
because my current solution should *not* stay at the top, as it added
basically nothing.
* Combine <8 and 8-16 cases into one case.
* Adopt mask-based approach for the <16 length city fast path (idea of Van Phu Do).
* Slightly improved code layout.
* Update perf number.
- use smaller regions (increased region count) so there will be less idle time for the workers who completed their tasks
- get rid of some configuration related stuff during initialization which might save a few tens of milliseconds hopefully
- update temperature value parsing instruction order to get benefit of ILP better (hopefully)
* decrease instruction level parallelism
it turns out doing 2 things was too much. perf annotate showed spilling.
* more trickery with latency hiding
* work-stealing, lookp tables, credits
* do not assume gender
* 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
* Justin's implementation
* Rename justin to Judekeyser
* Back to previous implementation of vectors
* Reading names as sequences of integers
* Fixing tests
* Scale down the number of NIO workers
---------
Co-authored-by: Justin Dekeyser <justin.dekeyser@Justins-MacBook-Pro.local>
instead of writing result line by line, implemented random.choices for randomisation of multiple stations and writing large batche ot the disk, also instead of "round" just using :.1f which is probably quicker on a large scale, because it's not a mathematical function