reduce memory usage for computation of cumulative distribution

Before: To compute the cumulative distribution we added every duration
into a LongList. This requires O(n) memory, where n is the number of
values.

Now: We store the durations + the number of occurrences in a
LongLongHashMap. This has the potential to reduce the memory
requirements if durations occur multiple times. There are a lot of
durations with 0, 1, 2 milliseconds. In the worst case every duration
is different. In that case the memory usage doubled with this solution.

Future: We are currently storing durations with milli seconds precision.
We don't have to do that. We cannot draw 100 million different values
on the y-axis in an images with only 1000px.
This commit is contained in:
2019-09-07 18:31:18 +02:00
parent 0e9e2cd53a
commit 162ef1626c
3 changed files with 72 additions and 18 deletions

View File

@@ -32,7 +32,7 @@ ext {
lib_log4j2_core = "org.apache.logging.log4j:log4j-core:${version_log4j2}"
lib_log4j2_slf4j_impl = "org.apache.logging.log4j:log4j-slf4j-impl:${version_log4j2}"
lib_primitive_collections='org.lucares:primitiveCollections:0.1.20190819195450'
lib_primitive_collections='org.lucares:primitiveCollections:0.1.20190907180014'
lib_spring_boot_log4j2="org.springframework.boot:spring-boot-starter-log4j2:${version_spring}"
lib_spring_boot_mustache="org.springframework.boot:spring-boot-starter-mustache:${version_spring}"