From 34bde357951b6d1ee3b99446161c5abff4e049a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Sat, 17 Apr 2021 14:17:30 +0200 Subject: [PATCH] Add FullSearch strategy --- .../strategies/searchstrategy/FullSearch.kt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt new file mode 100644 index 000000000..3936d1982 --- /dev/null +++ b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt @@ -0,0 +1,25 @@ +package theodolite.strategies.searchstrategy + +import mu.KotlinLogging +import theodolite.execution.BenchmarkExecutor +import theodolite.util.LoadDimension +import theodolite.util.Resource + +private val logger = KotlinLogging.logger {} + +/** + * Linear-search-like implementation for determining the smallest suitable number of instances. + * + * @param benchmarkExecutor Benchmark executor which runs the individual benchmarks. + */ +class LinearSearch(benchmarkExecutor: BenchmarkExecutor) : SearchStrategy(benchmarkExecutor) { + + override fun findSuitableResource(load: LoadDimension, resources: List<Resource>): Resource? { + for (res in resources) { + + logger.info { "Running experiment with load '$load' and resources '$res'" } + if (this.benchmarkExecutor.runExperiment(load, res)) return res + } + return null + } +} -- GitLab