diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LargeCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LargeCache.kt index fe33eff40..aa1531ea7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LargeCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LargeCache.kt @@ -47,80 +47,88 @@ class LargeCache { } fun forEach(consumer: BiConsumer) { - cache.forEach(consumer) + innerForEach(consumer) } fun filter(consumer: BiFilter): List { val runner = BiFilterCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun filterIntoSet(consumer: BiFilter): Set { val runner = BiFilterUniqueCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun mapNotNull(consumer: BiMapper): List { val runner = BiMapCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun mapNotNullIntoSet(consumer: BiMapper): Set { val runner = BiMapUniqueCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun mapFlatten(consumer: BiMapper?>): List { val runner = BiMapFlattenCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun mapFlattenIntoSet(consumer: BiMapper?>): Set { val runner = BiMapFlattenUniqueCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun map(consumer: BiNotNullMapper): List { val runner = BiNotNullMapCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun sumOf(consumer: BiSumOf): Int { val runner = BiSumOfCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.sum } fun sumOfLong(consumer: BiSumOfLong): Long { val runner = BiSumOfLongCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.sum } fun groupBy(consumer: BiNotNullMapper): Map> { val runner = BiGroupByCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun countByGroup(consumer: BiNotNullMapper): Map { val runner = BiCountByGroupCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.results } fun count(consumer: BiFilter): Int { val runner = BiCountIfCollector(consumer) - cache.forEach(runner) + innerForEach(runner) return runner.count } + + private fun innerForEach(runner: BiConsumer) { + // val (value, elapsed) = + // measureTimedValue { + cache.forEach(runner) + // } + // println("LargeCache full loop $elapsed \t for $runner") + } } fun interface BiFilter {