Commit Graph

638 Commits

Author SHA1 Message Date
Filip Hrisafov
4a483b4097 Use long parse and use char array instead of CharBuffer for adding to it 2024-01-04 18:50:45 +01:00
Gunnar Morling
88b1c30db8 Leaderboard update 2024-01-04 18:22:13 +01:00
Richard Startin
c3411f6023
Richard Startin: Adopt @spullara's double parsing code;
* increase chunk size
* simplify and tune parameters
2024-01-04 18:19:56 +01:00
Peter Lawrey
a09fa928db
Adding Peter Lawrey's submission 2024-01-04 17:59:40 +01:00
Gunnar Morling
5d885165ba Updating ignore file 2024-01-04 17:46:11 +01:00
Gunnar Morling
5c219e7b7a Fixing wrong expected value 2024-01-04 17:43:01 +01:00
Gunnar Morling
b6d33fd8fe Expanding tests and eval infra 2024-01-04 17:22:00 +01:00
Filip Hrisafov
a503362c36 Auto reformat classes 2024-01-04 15:35:34 +01:00
Filip Hrisafov
fd92f5e807 Use enable-preview via compiler argument option in the maven-compiler-plugin because IntelliJ does not recognize the configuration option 2024-01-04 15:35:34 +01:00
Gunnar Morling
5d8d91e0e8 Clarifying maximum number of distinct station names 2024-01-04 15:24:43 +01:00
Gunnar Morling
c74dc32b35 Adding test loop 2024-01-04 15:24:27 +01:00
Alexander Yastrebov
c9400bc1ce test: add test samples
Adds test samples that can be used for unit tests or to verify
implementations via:
```bash
for sample in $(ls src/test/resources/samples/*.txt)
do
  echo "Validating $sample"
  rm -f measurements.txt
  ln -s $sample measurements.txt

  diff <(./calculate_average.sh) ${sample%.txt}.out
done
rm measurements.txt
```

For #61
2024-01-04 13:18:29 +01:00
Johannes Bechberger
9a558e2451 Link async-profiler and ap-loader in the README 2024-01-04 12:38:08 +01:00
Gunnar Morling
f52a89083b
FAQ: OS clarification 2024-01-04 12:37:17 +01:00
Gunnar Morling
82eeeea693
Rule and value range clarifications 2024-01-04 12:19:31 +01:00
Gunnar Morling
5749636572
Updating leaderboard;
Removing two solutions from the leaderboard temporarily, as they violated the "must work with all station names" rule and are prone to hash collisions for names not in the current data set. Will bring them back once these submissions have been updated.
2024-01-04 09:34:45 +01:00
Gunnar Morling
09c4e603f5 Leaderboard update 2024-01-03 21:20:30 +01:00
Elliot Barlas
ba5a839a86
Running ebarlas solution with GraalVM CE 21.0.1 2024-01-03 21:18:20 +01:00
Gunnar Morling
22d5d2270f Leaderboard update 2024-01-03 21:05:14 +01:00
Dimitar Dimitrov
d73457872f ddimtirov - switched to the foreign memory access preview API for another 10% speedup 2024-01-03 21:04:44 +01:00
Dimitar Dimitrov
1923fc65a8 ddimtirov - lifted parallel mmapped i/o from Sam Pullara's implementation 2024-01-03 21:04:44 +01:00
Dimitar Dimitrov
57cfa54c68 ddimtirov - single-threaded datastructures tuning - reading to char buffers, one pass, no allocation processing 2024-01-03 21:04:44 +01:00
Dimitar Dimitrov
2458f056d6 ddimtirov - fixpoint, objects, streams and strings 2024-01-03 21:04:44 +01:00
Roy van Rijn
5570f1b60a
Roy van Rijn: memory mapped files, branchless parsing, bitwiddle magic
Added SWAR (SIMD Within A Register) code to increase bytebuffer processing/throughput
Delaying the creation of the String by comparing hash, segmenting like spullara, improved EOL finding

Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2024-01-03 20:44:24 +01:00
Richard Startin
0ba5cf33d4 richardstartin submission 2024-01-03 20:42:18 +01:00
Filip Hrisafov
d57cf78faa
Adding filiphr's submission;
* Initial implementation using Shenandoah GC and parallel iteration

* Use memory mapped files

* Iterate the buffer once and use BigDecimal parsing instead of Double.parseDouble

* Add information about Graal

* Add sdk use to calculate script
2024-01-03 20:32:16 +01:00
Gunnar Morling
eebc23bd89 Leaderboard update 2024-01-03 20:22:32 +01:00
Karl Heinz Marbaise
95c9d091ef
Adding khmarbaise 2024-01-03 20:21:23 +01:00
Markus Ebner
580c4ac214
Adding seijikun's submission 2024-01-03 20:06:14 +01:00
Max Rydahl Andersen
4a08c93469 doc: document flamegraph generation with jbang 2024-01-03 19:44:55 +01:00
Gunnar Morling
a5cc1746df Updating leaderboard 2024-01-03 17:22:47 +01:00
Nick Palmer
8e6298cd2a
Adding Nick Palmer's submission;
* Memory mapped file, single-pass parsing, custom hash map, fixed thread pool
The threading was a hasty addition and needs work

* Used arraylist instead of treemap to reduce a little overhead
We only need it sorted for output, so only construct a treemap for output

* Attempt to speed up double conversion

* Cap core count for low-core systems

* Fix wrong exponent

* Accumulate measurement value in double, seems marginally faster

Benchmark                                                           Mode  Cnt    Score    Error   Units
DoubleParsingBenchmark.ourToDouble                                 thrpt   10  569.771 ±  7.065  ops/us
DoubleParsingBenchmark.ourToDoubleAccumulateInToDouble             thrpt   10  648.026 ±  7.741  ops/us
DoubleParsingBenchmark.ourToDoubleDivideInsteadOfMultiply          thrpt   10  570.412 ±  9.329  ops/us
DoubleParsingBenchmark.ourToDoubleNegative                         thrpt   10  512.618 ±  8.580  ops/us
DoubleParsingBenchmark.ourToDoubleNegativeAccumulateInToDouble     thrpt   10  565.043 ± 18.137  ops/us
DoubleParsingBenchmark.ourToDoubleNegativeDivideInsteadOfMultiply  thrpt   10  511.228 ± 13.967  ops/us
DoubleParsingBenchmark.stringToDouble                              thrpt   10   52.310 ±  1.351  ops/us
DoubleParsingBenchmark.stringToDoubleNegative                      thrpt   10   50.785 ±  1.252  ops/us
2024-01-03 17:21:56 +01:00
Robin Moffatt
eceaf1868d
Add note about sharing non-Java solutions on GH discussions;
Also fixing millisecond separator

Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2024-01-03 16:30:36 +01:00
Gunnar Morling
eb8a7150bc Leaderboard update 2024-01-03 16:26:38 +01:00
Elliot Barlas
1b048c876d
Adding Elliot Barlas' submission 2024-01-03 16:25:24 +01:00
Gunnar Morling
2210710ceb Leaderboard update 2024-01-03 16:11:22 +01:00
Roman Schweitzer
ea035790fd
Using DoubleAccumulators to save on a measurment creation (#26) 2024-01-03 16:10:31 +01:00
Gunnar Morling
a3e3a3f88b Leaderboard update 2024-01-03 15:59:57 +01:00
Chris Riccomini
e9f062ce4d Adding Chris Riccomini's submission 2024-01-03 15:56:31 +01:00
Gunnar Morling
8380ab5e57 Showing java version in eval script 2024-01-03 15:41:12 +01:00
Sam Pullara
c832d64afe
Adding Sam Pullara's submission; 2024-01-03 15:35:51 +01:00
Alexander Yastrebov
0fc9e8d545 Add a script to transform output into CSV format
It is useful to debug differences between implementations, e.g.:
```sh
$ while ./create_measurements.sh 1000 && diff <(./calculate_average_royvanrijn.sh 2>/dev/null | ./tocsv.sh) <(./calculate_average.sh 2>/dev/null | ./tocsv.sh) ; do echo OK; done
Created file with 1,000 measurements in 50 ms
60c60
< Bucharest;-2.9;2.9;6.1
---
> Bucharest;-2.9;2.8;6.1
265c265
< Petropavlovsk-Kamchatsky;0.9;9.3;17.7
---
> Petropavlovsk-Kamchatsky;0.9;9.2;17.7
```

For #14
2024-01-03 14:56:36 +01:00
Gunnar Morling
5a46fb1bed
README clarifications 2024-01-03 14:48:55 +01:00
Rene Schwietzke
70fcbf9c27 Removed changes to formatting 2024-01-03 13:03:37 +01:00
Rene Schwietzke
04bd2d69b6 Faster version of the data generator 2024-01-03 13:03:37 +01:00
Karl Heinz Marbaise
7d485d0e8b Usage of try-with-resources
pom file cleanup
2024-01-03 13:03:03 +01:00
Dr Heinz M. Kabutz
09d3530d44 fixed mistake in class name 2024-01-03 10:15:01 +01:00
Gunnar Morling
e7e7deb64a Evaluating Aurelian Tutuianu's entry 2024-01-02 21:20:40 +01:00
Aurelian Tutuianu
1721848570 - implementation by padreati 2024-01-02 21:16:49 +01:00
Gunnar Morling
d20e71d483 Evaluating Roy's updated entry 2024-01-02 21:01:58 +01:00