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 0000000000000000000000000000000000000000..3936d1982cc2e0d4701d3ff643199cfdc0d35ff4 --- /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 + } +}