it turns out doing 3 things at once was too much. perf annotate showed spilling.
Check List:
[x] You have run ./mvnw verify and the project builds successfully
[x] Tests pass (./test.sh <username> shows no differences between expected and actual outputs)
[x] All formatting changes by the build are committed
[x] Your launch script is named calculate_average_<username>.sh (make sure to match casing of your GH user name) and is executable
[x] Output matches that of calculate_average_baseline.sh
[ ] For new entries, or after substantial changes: When implementing custom hash structures, please point to where you deal with hash collisions (line number)
Execution time: 1.8s
Execution time of reference implementation: long
thanks to @franz1981 for the idea to explore register spilling and to @thomaswue for tips on how to do it!
it turns out doing 3 things at once was too much.
perf annotate
showed spilling.Check List:
[x] You have run
./mvnw verify
and the project builds successfully[x] Tests pass (
./test.sh <username>
shows no differences between expected and actual outputs)[x] All formatting changes by the build are committed
[x] Your launch script is named
calculate_average_<username>.sh
(make sure to match casing of your GH user name) and is executable[x] Output matches that of
calculate_average_baseline.sh
[ ] For new entries, or after substantial changes: When implementing custom hash structures, please point to where you deal with hash collisions (line number)
Execution time: 1.8s
Execution time of reference implementation: long
thanks to @franz1981 for the idea to explore register spilling and to @thomaswue for tips on how to do it!