From f3aa275c256adeb30c970a9a01d91a2189e96f9b Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Mon, 22 Jul 2019 23:07:38 +0300 Subject: [PATCH 1/2] Comment benchmark methods --- .../kotlin/benchmarks/immutableList/Add.kt | 18 ++++++++++++++++++ .../kotlin/benchmarks/immutableList/Get.kt | 6 ++++++ .../kotlin/benchmarks/immutableList/Iterate.kt | 12 ++++++++++++ .../kotlin/benchmarks/immutableList/Remove.kt | 6 ++++++ .../kotlin/benchmarks/immutableList/Set.kt | 12 ++++++++++++ .../benchmarks/immutableList/builder/Add.kt | 18 ++++++++++++++++++ .../benchmarks/immutableList/builder/Get.kt | 6 ++++++ .../immutableList/builder/Iterate.kt | 12 ++++++++++++ .../benchmarks/immutableList/builder/Remove.kt | 6 ++++++ .../benchmarks/immutableList/builder/Set.kt | 12 ++++++++++++ .../kotlin/benchmarks/immutableMap/Get.kt | 6 ++++++ .../kotlin/benchmarks/immutableMap/Iterate.kt | 18 ++++++++++++++++++ .../kotlin/benchmarks/immutableMap/Put.kt | 18 ++++++++++++++++++ .../kotlin/benchmarks/immutableMap/Remove.kt | 6 ++++++ .../benchmarks/immutableMap/builder/Get.kt | 6 ++++++ .../benchmarks/immutableMap/builder/Iterate.kt | 18 ++++++++++++++++++ .../benchmarks/immutableMap/builder/Put.kt | 18 ++++++++++++++++++ .../benchmarks/immutableMap/builder/Remove.kt | 6 ++++++ .../kotlin/benchmarks/immutableSet/Add.kt | 18 ++++++++++++++++++ .../kotlin/benchmarks/immutableSet/Contains.kt | 6 ++++++ .../kotlin/benchmarks/immutableSet/Iterate.kt | 6 ++++++ .../kotlin/benchmarks/immutableSet/Remove.kt | 6 ++++++ .../benchmarks/immutableSet/builder/Add.kt | 18 ++++++++++++++++++ .../immutableSet/builder/Contains.kt | 6 ++++++ .../benchmarks/immutableSet/builder/Iterate.kt | 6 ++++++ .../benchmarks/immutableSet/builder/Remove.kt | 6 ++++++ 26 files changed, 276 insertions(+) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt index f325fc56..4c2e951f 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt @@ -26,11 +26,23 @@ open class Add { @Param(BM_1, BM_10, BM_100, BM_1000, BM_10000, BM_100000, BM_1000000, BM_10000000) var size: Int = 0 + /** + * Adds [size] elements to an empty persistent list. + * + * Expected time: nearly constant. + * Expected memory: for size in 1..32 - O(size), nearly constant otherwise. + */ @Benchmark fun addLast(): ImmutableList { return persistentListAdd(size) } + /** + * Adds [size] elements to an empty persistent list and then iterates all elements from first to last. + * + * Expected time: [addLast] + [Iterate.firstToLast] + * Expected memory: [addLast] + [Iterate.firstToLast] + */ @Benchmark fun addLastAndIterate(bh: Blackhole) { val list = persistentListAdd(size) @@ -39,6 +51,12 @@ open class Add { } } + /** + * Adds [size] elements to an empty persistent list and then gets all elements by index from first to last. + * + * Expected time: [addLast] + [Get.getByIndex] + * Expected memory: [addLast] + [Get.getByIndex] + */ @Benchmark fun addLastAndGet(bh: Blackhole) { val list = persistentListAdd(size) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt index 931a2f85..a1644e0a 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt @@ -34,6 +34,12 @@ open class Get { persistentList = persistentListAdd(size) } + /** + * Gets every element by index starting from first to last. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun getByIndex(bh: Blackhole) { for (i in 0 until persistentList.size) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt index 201ba786..7dfbe79e 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt @@ -34,6 +34,12 @@ open class Iterate { persistentList = persistentListAdd(size) } + /** + * Iterates every element starting from first to last. + * + * Expected time: nearly constant + * Expected memory: none once iterator created + */ @Benchmark fun firstToLast(bh: Blackhole) { for (e in persistentList) { @@ -41,6 +47,12 @@ open class Iterate { } } + /** + * Iterates every element starting from last to first. + * + * Expected time: nearly constant + * Expected memory: none once iterator created + */ @Benchmark fun lastToFirst(bh: Blackhole) { val iterator = persistentList.listIterator(size) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt index b370e496..c376163b 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt @@ -34,6 +34,12 @@ open class Remove { persistentList = persistentListAdd(size) } + /** + * Removes all elements by index starting from last to first. + * + * Expected time: nearly constant. + * Expected memory: for size in 1..32 - O(size), nearly constant otherwise. + */ @Benchmark fun removeLast(): ImmutableList { var list = persistentList diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt index e74ae3e5..434f31b6 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt @@ -36,6 +36,12 @@ open class Set { randomIndices = List(size) { it }.shuffled() } + /** + * Updates each element by index starting from first to last. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun setByIndex(): ImmutableList { repeat(times = size) { index -> @@ -44,6 +50,12 @@ open class Set { return persistentList } + /** + * Updates each element by index randomly. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun setByRandomIndex(): ImmutableList { repeat(times = size) { index -> diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt index 2d66b88c..6b6c5da2 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt @@ -29,11 +29,23 @@ open class Add { @Param(IP_100, IP_99_09, IP_95, IP_70, IP_50, IP_30, IP_0) var immutablePercentage: Double = 0.0 + /** + * Adds [size] elements to an empty persistent list builder. + * + * Expected time: nearly constant. + * Expected memory: nearly constant. + */ @Benchmark fun addLast(): PersistentList.Builder { return persistentListBuilderAdd(size, immutablePercentage) } + /** + * Adds [size] elements to an empty persistent list builder and then iterates all elements from first to last. + * + * Expected time: [addLast] + [Iterate.firstToLast] + * Expected memory: [addLast] + [Iterate.firstToLast] + */ @Benchmark fun addLastAndIterate(bh: Blackhole) { val builder = persistentListBuilderAdd(size, immutablePercentage) @@ -42,6 +54,12 @@ open class Add { } } + /** + * Adds [size] elements to an empty persistent list builder and then gets all elements by index from first to last. + * + * Expected time: [addLast] + [Get.getByIndex] + * Expected memory: [addLast] + [Get.getByIndex] + */ @Benchmark fun addLastAndGet(bh: Blackhole) { val builder = persistentListBuilderAdd(size, immutablePercentage) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt index d097a0c6..ab77f27b 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt @@ -36,6 +36,12 @@ open class Get { builder = persistentListBuilderAdd(size, immutablePercentage) } + /** + * Gets every element by index starting from first to last. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun getByIndex(bh: Blackhole) { for (i in 0 until builder.size) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt index 162a645c..885b2449 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt @@ -36,6 +36,12 @@ open class Iterate { builder = persistentListBuilderAdd(size, immutablePercentage) } + /** + * Iterates every element starting from first to last. + * + * Expected time: nearly constant + * Expected memory: none once iterator created + */ @Benchmark fun firstToLast(bh: Blackhole) { for (e in builder) { @@ -43,6 +49,12 @@ open class Iterate { } } + /** + * Iterates every element starting from last to first. + * + * Expected time: nearly constant + * Expected memory: none once iterator created + */ @Benchmark fun lastToFirst(bh: Blackhole) { val iterator = builder.listIterator(size) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt index 5f151709..968855ef 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt @@ -28,6 +28,12 @@ open class Remove { @Param(IP_100, IP_99_09, IP_95, IP_70, IP_50, IP_30, IP_0) var immutablePercentage: Double = 0.0 + /** + * Adds [size] elements to an empty persistent list builder and then removes each element by index starting from last to first. + * + * Expected time: [Add.addLast] + nearly constant. + * Expected memory: [Add.addLast] + nearly constant. + */ @Benchmark fun addAndRemoveLast(): PersistentList.Builder { val builder = persistentListBuilderAdd(size, immutablePercentage) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt index 3385c164..7299edc1 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt @@ -38,6 +38,12 @@ open class Set { randomIndices = List(size) { it }.shuffled() } + /** + * Updates each element by index starting from first to last. + * + * Expected time: logarithmic + * Expected memory: nearly constant + */ @Benchmark fun setByIndex(): PersistentList.Builder { for (i in 0 until size) { @@ -46,6 +52,12 @@ open class Set { return builder } + /** + * Updates each element by index randomly. + * + * Expected time: logarithmic + * Expected memory: nearly constant + */ @Benchmark fun setByRandomIndex(): PersistentList.Builder { for (i in 0 until size) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt index d74ad75f..233b87d4 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt @@ -44,6 +44,12 @@ open class Get { keys = generateKeys(hashCodeType, size) } + /** + * Gets every value by key. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun get(bh: Blackhole) { repeat(times = size) { index -> diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt index 475cb848..749bc0b0 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt @@ -39,6 +39,12 @@ open class Iterate { persistentMap = persistentMapPut(implementation, generateKeys(hashCodeType, size)) } + /** + * Iterates all keys. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: none once iterator is created. + */ @Benchmark fun iterateKeys(bh: Blackhole) { for (k in persistentMap.keys) { @@ -46,6 +52,12 @@ open class Iterate { } } + /** + * Iterates all values. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: none once iterator is created. + */ @Benchmark fun iterateValues(bh: Blackhole) { for (v in persistentMap.values) { @@ -53,6 +65,12 @@ open class Iterate { } } + /** + * Iterates all entries. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: constant. + */ @Benchmark fun iterateEntries(bh: Blackhole) { for (e in persistentMap) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt index 648eff9f..c95078a2 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt @@ -39,11 +39,23 @@ open class Put { keys = generateKeys(hashCodeType, size) } + /** + * Adds [size] entries to an empty persistent map. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun put(): PersistentMap { return persistentMapPut(implementation, keys) } + /** + * Adds [size] entries to an empty persistent map and then gets every value by key. + * + * Expected time: [put] + [Get.get] + * Expected memory: [put] + [Get.get] + */ @Benchmark fun putAndGet(bh: Blackhole) { val map = persistentMapPut(implementation, keys) @@ -52,6 +64,12 @@ open class Put { } } + /** + * Adds [size] entries to an empty persistent map and then iterates all keys. + * + * Expected time: [put] + [Iterate.iterateKeys] + * Expected memory: [put] + [Iterate.iterateKeys] + */ @Benchmark fun putAndIterateKeys(bh: Blackhole) { val map = persistentMapPut(implementation, keys) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt index 69d8f302..83c560de 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt @@ -44,6 +44,12 @@ open class Remove { keys = generateKeys(hashCodeType, size) } + /** + * Removes each entry by key. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun remove(): PersistentMap { var map = persistentMap diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt index 3d29109f..7290440c 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt @@ -47,6 +47,12 @@ open class Get { keys = generateKeys(hashCodeType, size) } + /** + * Gets every value by key. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun get(bh: Blackhole) { repeat(times = size) { index -> diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt index aeb8fcf7..d1c16cb6 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt @@ -43,6 +43,12 @@ open class Iterate { builder = persistentMapBuilderPut(implementation, keys, immutablePercentage) } + /** + * Iterates all keys. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: none once iterator is created. + */ @Benchmark fun iterateKeys(bh: Blackhole) { for (k in builder.keys) { @@ -50,6 +56,12 @@ open class Iterate { } } + /** + * Iterates all values. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: constant. + */ @Benchmark fun iterateValues(bh: Blackhole) { for (v in builder.values) { @@ -57,6 +69,12 @@ open class Iterate { } } + /** + * Iterates all entries. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: constant. + */ @Benchmark fun iterateEntries(bh: Blackhole) { for (e in builder) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt index 4f1ed2b4..4775c451 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt @@ -42,11 +42,23 @@ open class Put { keys = generateKeys(hashCodeType, size) } + /** + * Adds [size] entries to an empty persistent map builder. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun put(): PersistentMap.Builder { return persistentMapBuilderPut(implementation, keys, immutablePercentage) } + /** + * Adds [size] entries to an empty persistent map builder and then gets every value by key. + * + * Expected time: [put] + [Get.get] + * Expected memory: [put] + [Get.get] + */ @Benchmark fun putAndGet(bh: Blackhole) { val builder = persistentMapBuilderPut(implementation, keys, immutablePercentage) @@ -55,6 +67,12 @@ open class Put { } } + /** + * Adds [size] entries to an empty persistent map builder and then iterates all keys. + * + * Expected time: [put] + [Iterate.iterateKeys] + * Expected memory: [put] + [Iterate.iterateKeys] + */ @Benchmark fun putAndIterateKeys(bh: Blackhole) { val builder = persistentMapBuilderPut(implementation, keys, immutablePercentage) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt index c7efaf07..61fe67fd 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt @@ -48,6 +48,12 @@ open class Remove { } } + /** + * Adds [size] entries to an empty persistent map builder and then removes each entry by key. + * + * Expected time: [Put.put] + logarithmic + * Expected memory: [Put.put] + logarithmic + */ // Q: Why not to benchmark pure remove method? // A: Each invocation of remove benchmark method would clear the builder and creating new one would be needed each time. // Setting `@Setup(Level.Invocation)` may cause bad benchmark accuracy amid frequent `prepare` calls, especially for small `size`. diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt index 0e390b7c..8f0cfd09 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt @@ -39,11 +39,23 @@ open class Add { elements = generateElements(hashCodeType, size) } + /** + * Adds [size] elements to an empty persistent set. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun add(): ImmutableSet { return persistentSetAdd(implementation, elements) } + /** + * Adds [size] elements to an empty persistent set and then requests if every element is contained. + * + * Expected time: [add] + [Contains.contains] + * Expected memory: [add] + [Contains.contains] + */ @Benchmark fun addAndContains(bh: Blackhole) { val set = persistentSetAdd(implementation, elements) @@ -52,6 +64,12 @@ open class Add { } } + /** + * Adds [size] elements to an empty persistent set and then iterates all elements. + * + * Expected time: [add] + [Iterate.iterate] + * Expected memory: [add] + [Iterate.iterate] + */ @Benchmark fun addAndIterate(bh: Blackhole) { val set = persistentSetAdd(implementation, elements) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt index 0398bcfb..4b305630 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt @@ -44,6 +44,12 @@ open class Contains { elements = generateElements(hashCodeType, size) } + /** + * Requests if every element is contained. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun contains(bh: Blackhole) { repeat(times = size) { index -> diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt index b86f083c..e84f47f6 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt @@ -39,6 +39,12 @@ open class Iterate { persistentSet = persistentSetAdd(implementation, generateElements(hashCodeType, size)) } + /** + * Iterates all elements. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: none once iterator is created. + */ @Benchmark fun iterate(bh: Blackhole) { for (e in persistentSet) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt index deb91e1d..a6ff583b 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt @@ -44,6 +44,12 @@ open class Remove { elements = generateElements(hashCodeType, size) } + /** + * Removes each element. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun remove(): ImmutableSet { var set = persistentSet diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt index cc31d052..85ac8382 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt @@ -42,11 +42,23 @@ open class Add { elements = generateElements(hashCodeType, size) } + /** + * Adds [size] elements to an empty persistent set builder. + * + * Expected time: logarithmic + * Expected memory: logarithmic + */ @Benchmark fun add(): PersistentSet.Builder { return persistentSetBuilderAdd(implementation, elements, immutablePercentage) } + /** + * Adds [size] elements to an empty persistent set builder and then requests if every element is contained. + * + * Expected time: [add] + [Contains.contains] + * Expected memory: [add] + [Contains.contains] + */ @Benchmark fun addAndContains(bh: Blackhole) { val builder = persistentSetBuilderAdd(implementation, elements, immutablePercentage) @@ -55,6 +67,12 @@ open class Add { } } + /** + * Adds [size] elements to an empty persistent set builder and then iterates all elements. + * + * Expected time: [add] + [Iterate.iterate] + * Expected memory: [add] + [Iterate.iterate] + */ @Benchmark fun addAndIterate(bh: Blackhole) { val set = persistentSetBuilderAdd(implementation, elements, immutablePercentage) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt index cc3cf1f7..e0573eef 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt @@ -47,6 +47,12 @@ open class Contains { elements = generateElements(hashCodeType, size) } + /** + * Requests if every element is contained. + * + * Expected time: logarithmic + * Expected memory: none + */ @Benchmark fun contains(bh: Blackhole) { repeat(times = size) { index -> diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt index fde3fb4c..9d7326b3 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt @@ -43,6 +43,12 @@ open class Iterate { builder = persistentSetBuilderAdd(implementation, elements, immutablePercentage) } + /** + * Iterates all elements. + * + * Expected time: nearly constant (logarithmic for ordered persistent map) + * Expected memory: none once iterator is created. + */ @Benchmark fun iterate(bh: Blackhole) { for (e in builder) { diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt index 21b7f12a..fac58fec 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt @@ -48,6 +48,12 @@ open class Remove { } } + /** + * Adds [size] elements to an empty persistent set builder and then removes each element. + * + * Expected time: [Add.add] + logarithmic + * Expected memory: [Add.add] + logarithmic + */ @Benchmark fun addAndRemove(): PersistentSet.Builder { val builder = persistentSetBuilderAdd(implementation, elements, immutablePercentage) From 49a182c966763d49b229985cb0bb707278a77432 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Tue, 6 Aug 2019 10:42:11 +0300 Subject: [PATCH 2/2] Add info about benchmark measurements --- .../src/jvmMain/kotlin/benchmarks/immutableList/Add.kt | 6 ++++++ .../src/jvmMain/kotlin/benchmarks/immutableList/Get.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt | 4 ++++ .../src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableList/Set.kt | 4 ++++ .../jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt | 6 ++++++ .../jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt | 2 ++ .../kotlin/benchmarks/immutableList/builder/Iterate.kt | 4 ++++ .../kotlin/benchmarks/immutableList/builder/Remove.kt | 2 ++ .../jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt | 4 ++++ .../src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt | 6 ++++++ .../src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt | 6 ++++++ .../src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt | 2 ++ .../jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt | 2 ++ .../kotlin/benchmarks/immutableMap/builder/Iterate.kt | 6 ++++++ .../jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt | 6 ++++++ .../kotlin/benchmarks/immutableMap/builder/Remove.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt | 6 ++++++ .../src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt | 2 ++ .../src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt | 2 ++ .../jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt | 6 ++++++ .../kotlin/benchmarks/immutableSet/builder/Contains.kt | 2 ++ .../kotlin/benchmarks/immutableSet/builder/Iterate.kt | 2 ++ .../kotlin/benchmarks/immutableSet/builder/Remove.kt | 2 ++ 26 files changed, 92 insertions(+) diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt index 4c2e951f..c479224d 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Add.kt @@ -29,6 +29,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list. * + * Measures mean time and memory spent per `add` operation. + * * Expected time: nearly constant. * Expected memory: for size in 1..32 - O(size), nearly constant otherwise. */ @@ -40,6 +42,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list and then iterates all elements from first to last. * + * Measures mean time and memory spent per `add` and `next` operations. + * * Expected time: [addLast] + [Iterate.firstToLast] * Expected memory: [addLast] + [Iterate.firstToLast] */ @@ -54,6 +58,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list and then gets all elements by index from first to last. * + * Measures mean time and memory spent per `add` and `get` operations. + * * Expected time: [addLast] + [Get.getByIndex] * Expected memory: [addLast] + [Get.getByIndex] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt index a1644e0a..83850f5f 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Get.kt @@ -37,6 +37,8 @@ open class Get { /** * Gets every element by index starting from first to last. * + * Measures mean time and memory spent per `get` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt index 7dfbe79e..8e7ac42a 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Iterate.kt @@ -37,6 +37,8 @@ open class Iterate { /** * Iterates every element starting from first to last. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant * Expected memory: none once iterator created */ @@ -50,6 +52,8 @@ open class Iterate { /** * Iterates every element starting from last to first. * + * Measures mean time and memory spent per `previous` operation. + * * Expected time: nearly constant * Expected memory: none once iterator created */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt index c376163b..730bcad6 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Remove.kt @@ -37,6 +37,8 @@ open class Remove { /** * Removes all elements by index starting from last to first. * + * Measures mean time and memory spent per `removeAt` operation. + * * Expected time: nearly constant. * Expected memory: for size in 1..32 - O(size), nearly constant otherwise. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt index 434f31b6..92bb5499 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/Set.kt @@ -39,6 +39,8 @@ open class Set { /** * Updates each element by index starting from first to last. * + * Measures mean time and memory spent per `set` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ @@ -53,6 +55,8 @@ open class Set { /** * Updates each element by index randomly. * + * Measures mean time and memory spent per `set` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt index 6b6c5da2..703417c5 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Add.kt @@ -32,6 +32,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list builder. * + * Measures mean time and memory spent per `add` operation. + * * Expected time: nearly constant. * Expected memory: nearly constant. */ @@ -43,6 +45,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list builder and then iterates all elements from first to last. * + * Measures mean time and memory spent per `add` and `next` operations. + * * Expected time: [addLast] + [Iterate.firstToLast] * Expected memory: [addLast] + [Iterate.firstToLast] */ @@ -57,6 +61,8 @@ open class Add { /** * Adds [size] elements to an empty persistent list builder and then gets all elements by index from first to last. * + * Measures mean time and memory spent per `add` and `get` operations. + * * Expected time: [addLast] + [Get.getByIndex] * Expected memory: [addLast] + [Get.getByIndex] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt index ab77f27b..b811d0bc 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Get.kt @@ -39,6 +39,8 @@ open class Get { /** * Gets every element by index starting from first to last. * + * Measures mean time and memory spent per `get` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt index 885b2449..990776ed 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Iterate.kt @@ -39,6 +39,8 @@ open class Iterate { /** * Iterates every element starting from first to last. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant * Expected memory: none once iterator created */ @@ -52,6 +54,8 @@ open class Iterate { /** * Iterates every element starting from last to first. * + * Measures mean time and memory spent per `previous` operation. + * * Expected time: nearly constant * Expected memory: none once iterator created */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt index 968855ef..b363510d 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Remove.kt @@ -31,6 +31,8 @@ open class Remove { /** * Adds [size] elements to an empty persistent list builder and then removes each element by index starting from last to first. * + * Measures mean time and memory spent per `add` and `removeAt` operations. + * * Expected time: [Add.addLast] + nearly constant. * Expected memory: [Add.addLast] + nearly constant. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt index 7299edc1..d9740e8c 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableList/builder/Set.kt @@ -41,6 +41,8 @@ open class Set { /** * Updates each element by index starting from first to last. * + * Measures mean time and memory spent per `set` operation. + * * Expected time: logarithmic * Expected memory: nearly constant */ @@ -55,6 +57,8 @@ open class Set { /** * Updates each element by index randomly. * + * Measures mean time and memory spent per `set` operation. + * * Expected time: logarithmic * Expected memory: nearly constant */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt index 233b87d4..1db75071 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Get.kt @@ -47,6 +47,8 @@ open class Get { /** * Gets every value by key. * + * Measures mean time and memory spent per `get` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt index 749bc0b0..101dc022 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Iterate.kt @@ -42,6 +42,8 @@ open class Iterate { /** * Iterates all keys. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: none once iterator is created. */ @@ -55,6 +57,8 @@ open class Iterate { /** * Iterates all values. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: none once iterator is created. */ @@ -68,6 +72,8 @@ open class Iterate { /** * Iterates all entries. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: constant. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt index c95078a2..e40644c5 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Put.kt @@ -42,6 +42,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map. * + * Measures mean time and memory spent per `put` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ @@ -53,6 +55,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map and then gets every value by key. * + * Measures mean time and memory spent per `put` and `get` operations. + * * Expected time: [put] + [Get.get] * Expected memory: [put] + [Get.get] */ @@ -67,6 +71,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map and then iterates all keys. * + * Measures mean time and memory spent per `put` and `next` operations. + * * Expected time: [put] + [Iterate.iterateKeys] * Expected memory: [put] + [Iterate.iterateKeys] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt index 83c560de..a4297f01 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/Remove.kt @@ -47,6 +47,8 @@ open class Remove { /** * Removes each entry by key. * + * Measures mean time and memory spent per `remove` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt index 7290440c..df34545d 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Get.kt @@ -50,6 +50,8 @@ open class Get { /** * Gets every value by key. * + * Measures mean time and memory spent per `get` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt index d1c16cb6..d934c873 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Iterate.kt @@ -46,6 +46,8 @@ open class Iterate { /** * Iterates all keys. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: none once iterator is created. */ @@ -59,6 +61,8 @@ open class Iterate { /** * Iterates all values. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: constant. */ @@ -72,6 +76,8 @@ open class Iterate { /** * Iterates all entries. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: constant. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt index 4775c451..26b585e0 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Put.kt @@ -45,6 +45,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map builder. * + * Measures mean time and memory spent per `put` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ @@ -56,6 +58,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map builder and then gets every value by key. * + * Measures mean time and memory spent per `put` and `get` operations. + * * Expected time: [put] + [Get.get] * Expected memory: [put] + [Get.get] */ @@ -70,6 +74,8 @@ open class Put { /** * Adds [size] entries to an empty persistent map builder and then iterates all keys. * + * Measures mean time and memory spent per `put` and `next` operations. + * * Expected time: [put] + [Iterate.iterateKeys] * Expected memory: [put] + [Iterate.iterateKeys] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt index 61fe67fd..836d3840 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableMap/builder/Remove.kt @@ -51,6 +51,8 @@ open class Remove { /** * Adds [size] entries to an empty persistent map builder and then removes each entry by key. * + * Measures mean time and memory spent per `put` and `remove` operations. + * * Expected time: [Put.put] + logarithmic * Expected memory: [Put.put] + logarithmic */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt index 8f0cfd09..8bdf84e4 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Add.kt @@ -42,6 +42,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set. * + * Measures mean time and memory spent per `add` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ @@ -53,6 +55,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set and then requests if every element is contained. * + * Measures mean time and memory spent per `add` and `contains` operations. + * * Expected time: [add] + [Contains.contains] * Expected memory: [add] + [Contains.contains] */ @@ -67,6 +71,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set and then iterates all elements. * + * Measures mean time and memory spent per `add` and `next` operations. + * * Expected time: [add] + [Iterate.iterate] * Expected memory: [add] + [Iterate.iterate] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt index 4b305630..4ad4a734 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Contains.kt @@ -47,6 +47,8 @@ open class Contains { /** * Requests if every element is contained. * + * Measures mean time and memory spent per `contains` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt index e84f47f6..654d6376 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Iterate.kt @@ -42,6 +42,8 @@ open class Iterate { /** * Iterates all elements. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: none once iterator is created. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt index a6ff583b..83dc46f8 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/Remove.kt @@ -47,6 +47,8 @@ open class Remove { /** * Removes each element. * + * Measures mean time and memory spent per `remove` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt index 85ac8382..fb618aff 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Add.kt @@ -45,6 +45,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set builder. * + * Measures mean time and memory spent per `add` operation. + * * Expected time: logarithmic * Expected memory: logarithmic */ @@ -56,6 +58,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set builder and then requests if every element is contained. * + * Measures mean time and memory spent per `add` and `contains` operations. + * * Expected time: [add] + [Contains.contains] * Expected memory: [add] + [Contains.contains] */ @@ -70,6 +74,8 @@ open class Add { /** * Adds [size] elements to an empty persistent set builder and then iterates all elements. * + * Measures mean time and memory spent per `add` and `next` operations. + * * Expected time: [add] + [Iterate.iterate] * Expected memory: [add] + [Iterate.iterate] */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt index e0573eef..03bf9d4b 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Contains.kt @@ -50,6 +50,8 @@ open class Contains { /** * Requests if every element is contained. * + * Measures mean time and memory spent per `contains` operation. + * * Expected time: logarithmic * Expected memory: none */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt index 9d7326b3..99cb4b67 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Iterate.kt @@ -46,6 +46,8 @@ open class Iterate { /** * Iterates all elements. * + * Measures mean time and memory spent per `next` operation. + * * Expected time: nearly constant (logarithmic for ordered persistent map) * Expected memory: none once iterator is created. */ diff --git a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt index fac58fec..fba337cd 100644 --- a/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt +++ b/benchmarks-mpp/src/jvmMain/kotlin/benchmarks/immutableSet/builder/Remove.kt @@ -51,6 +51,8 @@ open class Remove { /** * Adds [size] elements to an empty persistent set builder and then removes each element. * + * Measures mean time and memory spent per `add` and `remove` operations. + * * Expected time: [Add.add] + logarithmic * Expected memory: [Add.add] + logarithmic */