diff --git a/frameworks/Kotlin/hexagon/benchmark_config.json b/frameworks/Kotlin/hexagon/benchmark_config.json index f858301bddd..3791218d0c8 100644 --- a/frameworks/Kotlin/hexagon/benchmark_config.json +++ b/frameworks/Kotlin/hexagon/benchmark_config.json @@ -25,29 +25,6 @@ "notes": "http://hexagonkt.com", "versus": "servlet" }, - "jetty-native": { - "json_url": "/json", - "db_url": "/db", - "query_url": "/query?queries=", - "fortune_url": "/fortunes", - "update_url": "/update?queries=", - "cached_query_url": "/cached-queries?count=", - "plaintext_url": "/plaintext", - "port": 9090, - "approach": "Realistic", - "classification": "Micro", - "database": "postgres", - "framework": "Hexagon", - "language": "Kotlin", - "orm": "Raw", - "platform": "Servlet", - "webserver": "None", - "os": "Linux", - "database_os": "Linux", - "display_name": "Hexagon Jetty Native PostgreSQL", - "notes": "http://hexagonkt.com", - "versus": "servlet" - }, "jdk": { "json_url": "/json", "db_url": "/db", @@ -163,29 +140,6 @@ "notes": "http://hexagonkt.com", "versus": "helidon-helidon" }, - "helidon-native": { - "json_url": "/json", - "db_url": "/db", - "query_url": "/query?queries=", - "fortune_url": "/fortunes", - "update_url": "/update?queries=", - "cached_query_url": "/cached-queries?count=", - "plaintext_url": "/plaintext", - "port": 9090, - "approach": "Realistic", - "classification": "Micro", - "database": "postgres", - "framework": "Hexagon", - "language": "Kotlin", - "orm": "Raw", - "platform": "Helidon", - "webserver": "None", - "os": "Linux", - "database_os": "Linux", - "display_name": "Hexagon Helidon Native PgClient", - "notes": "http://hexagonkt.com", - "versus": "helidon-helidon" - }, "helidon-pgclient": { "json_url": "/json", "db_url": "/db", diff --git a/frameworks/Kotlin/hexagon/build.gradle b/frameworks/Kotlin/hexagon/build.gradle index 97818fa7924..2e098bc1760 100644 --- a/frameworks/Kotlin/hexagon/build.gradle +++ b/frameworks/Kotlin/hexagon/build.gradle @@ -1,7 +1,7 @@ plugins { - id "org.jetbrains.kotlin.jvm" version "2.1.0" apply false - id "org.graalvm.buildtools.native" version "0.10.5" apply false + id "org.jetbrains.kotlin.jvm" version "2.1.20" apply false + id "org.graalvm.buildtools.native" version "0.10.6" apply false } version = "1.0.0" @@ -9,13 +9,13 @@ description = "TFB benchmark" group = "com.hexagontk" ext { - hexagonVersion = "4.0.1" - jettyVersion = "12.0.16" - nettyVersion = "4.1.118.Final" + hexagonVersion = "4.1.1" + jettyVersion = "12.0.19" + nettyVersion = "4.2.0.Final" - hikariVersion = "6.2.1" + hikariVersion = "6.3.0" postgresqlVersion = "42.7.5" - vertxVersion = "4.5.12" + vertxVersion = "5.0.0.CR6" cache2kVersion = "2.6.1.Final" applicationClass = "com.hexagontk.BenchmarkKt" @@ -30,5 +30,6 @@ subprojects { } tasks.wrapper { - gradleVersion = "8.12.1" +// gradleVersion = "8.14.0" + gradleVersion = "release-candidate" } diff --git a/frameworks/Kotlin/hexagon/config.toml b/frameworks/Kotlin/hexagon/config.toml index c9e89f53241..c7d5be77ece 100644 --- a/frameworks/Kotlin/hexagon/config.toml +++ b/frameworks/Kotlin/hexagon/config.toml @@ -73,24 +73,6 @@ platform = "Netty" webserver = "None" versus = "netty" -[nettyepoll-native] -urls.plaintext = "/plaintext" -urls.json = "/json" -urls.db = "/db" -urls.query = "/query?queries=" -urls.update = "/update?queries=" -urls.fortune = "/fortunes" -urls.cached_query = "/cached-queries?count=" -approach = "Realistic" -classification = "Micro" -database = "postgres" -database_os = "Linux" -os = "Linux" -orm = "Raw" -platform = "Netty" -webserver = "None" -versus = "netty" - [nettyepoll-pgclient] urls.plaintext = "/plaintext" urls.json = "/json" @@ -127,24 +109,6 @@ platform = "Helidon" webserver = "None" versus = "helidon-helidon" -[helidon-native] -urls.plaintext = "/plaintext" -urls.json = "/json" -urls.db = "/db" -urls.query = "/query?queries=" -urls.update = "/update?queries=" -urls.fortune = "/fortunes" -urls.cached_query = "/cached-queries?count=" -approach = "Realistic" -classification = "Micro" -database = "postgres" -database_os = "Linux" -os = "Linux" -orm = "Raw" -platform = "Helidon" -webserver = "None" -versus = "helidon-helidon" - [helidon-pgclient] urls.plaintext = "/plaintext" urls.json = "/json" diff --git a/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.jar b/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.jar index a4b76b9530d..1b33c55baab 100644 Binary files a/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.jar and b/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.jar differ diff --git a/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties b/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties index e18bc253b85..bb3521c6063 100644 --- a/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties +++ b/frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-rc-1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/frameworks/Kotlin/hexagon/gradlew b/frameworks/Kotlin/hexagon/gradlew index f3b75f3b0d4..23d15a93670 100755 --- a/frameworks/Kotlin/hexagon/gradlew +++ b/frameworks/Kotlin/hexagon/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -205,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/frameworks/Kotlin/hexagon/gradlew.bat b/frameworks/Kotlin/hexagon/gradlew.bat index 9d21a21834d..db3a6ac207e 100644 --- a/frameworks/Kotlin/hexagon/gradlew.bat +++ b/frameworks/Kotlin/hexagon/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile b/frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile index 25a78904f79..3158876f7db 100644 --- a/frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM container-registry.oracle.com/graalvm/native-image:21-muslib-ol9 as build +FROM container-registry.oracle.com/graalvm/native-image:24-muslib-ol9 as build USER root WORKDIR /hexagon diff --git a/frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile b/frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile index 2ad89ca5713..3effb8623a3 100644 --- a/frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-23-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-23-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_helidon_pgclient ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile b/frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile index 632cc8720b5..04c375f2d3e 100644 --- a/frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-23-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-23-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_helidon_postgresql ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-jdk-pgclient.dockerfile b/frameworks/Kotlin/hexagon/hexagon-jdk-pgclient.dockerfile index 485fff941e5..1cfcd6cb6d2 100644 --- a/frameworks/Kotlin/hexagon/hexagon-jdk-pgclient.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-jdk-pgclient.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-23-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-23-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_jdk_pgclient ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-jdk.dockerfile b/frameworks/Kotlin/hexagon/hexagon-jdk.dockerfile index b82e52e1100..71bafcce051 100644 --- a/frameworks/Kotlin/hexagon/hexagon-jdk.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-jdk.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-23-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-23-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_jdk_postgresql ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile b/frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile index b8efc965eb3..f301ecc3d55 100644 --- a/frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM container-registry.oracle.com/graalvm/native-image:21-muslib-ol9 as build +FROM container-registry.oracle.com/graalvm/native-image:24-muslib-ol9 as build USER root WORKDIR /hexagon diff --git a/frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile b/frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile index 90c5a0d03c8..509625769d2 100644 --- a/frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-21-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_nettyepoll_pgclient ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile b/frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile index 35a0e4729b7..5686ba65a55 100644 --- a/frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-21-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_nettyepoll_postgresql ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile b/frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile index dfc6c521a1d..e9411ce8d37 100644 --- a/frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon diff --git a/frameworks/Kotlin/hexagon/hexagon.dockerfile b/frameworks/Kotlin/hexagon/hexagon.dockerfile index 2654c706db1..6613348410c 100644 --- a/frameworks/Kotlin/hexagon/hexagon.dockerfile +++ b/frameworks/Kotlin/hexagon/hexagon.dockerfile @@ -1,7 +1,7 @@ # # BUILD # -FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build +FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-24-cds-musl AS build USER root WORKDIR /hexagon @@ -12,7 +12,7 @@ RUN ./gradlew --quiet -x test installDist # # RUNTIME # -FROM docker.io/bellsoft/liberica-runtime-container:jre-21-musl +FROM docker.io/bellsoft/liberica-runtime-container:jre-24-musl ARG PROJECT=hexagon_jetty_postgresql ENV POSTGRESQL_DB_HOST tfb-database diff --git a/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt b/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt index 2a97cb6ab07..61018ea73bf 100644 --- a/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt +++ b/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt @@ -23,6 +23,7 @@ fun main() { validatePath = systemSettingOrNull("validatePath") ?: false, validateRequestHeaders = systemSettingOrNull("validateRequestHeaders") ?: false, validateResponseHeaders = systemSettingOrNull("validateResponseHeaders") ?: false, + smartAsyncWrites = true, ) val benchmark = Benchmark(engine, store, templateEngine, templateUrl, Settings()) diff --git a/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/helidon_pgclient/native-image.properties b/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/helidon_pgclient/native-image.properties new file mode 100644 index 00000000000..85b899d04fb --- /dev/null +++ b/frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/helidon_pgclient/native-image.properties @@ -0,0 +1,2 @@ +Args= \ + --initialize-at-build-time=io.vertx.core.impl.buffer.VertxByteBufAllocator diff --git a/frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt b/frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt index 9cbf992c8f4..d5165e88359 100644 --- a/frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt +++ b/frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt @@ -1,17 +1,31 @@ package com.hexagontk +import com.hexagontk.core.Platform.systemSettingOrNull import com.hexagontk.core.media.TEXT_HTML import com.hexagontk.core.urlOf import com.hexagontk.http.server.helidon.HelidonHttpServer import com.hexagontk.store.BenchmarkSqlStore import com.hexagontk.templates.jte.Jte +import java.time.Duration fun main() { val settings = Settings() val store = BenchmarkSqlStore("postgresql") val templateEngine = Jte(TEXT_HTML, precompiled = true) val templateUrl = urlOf("classpath:fortunes.jte") - val engine = HelidonHttpServer() + val engine = HelidonHttpServer( + backlog = systemSettingOrNull("backlog") ?: (8 * 1024), + writeQueueLength = systemSettingOrNull("writeQueueLength") ?: (8 * 1024), + readTimeout = Duration.parse(systemSettingOrNull("readTimeout") ?: "PT0S"), + connectTimeout = Duration.parse(systemSettingOrNull("connectTimeout") ?: "PT0S"), + tcpNoDelay = systemSettingOrNull("tcpNoDelay") ?: true, + receiveLog = systemSettingOrNull("receiveLog") ?: false, + sendLog = systemSettingOrNull("sendLog") ?: false, + validatePath = systemSettingOrNull("validatePath") ?: false, + validateRequestHeaders = systemSettingOrNull("validateRequestHeaders") ?: false, + validateResponseHeaders = systemSettingOrNull("validateResponseHeaders") ?: false, + smartAsyncWrites = true, + ) val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings) benchmark.server.start() diff --git a/frameworks/Kotlin/hexagon/hexagon_jdk_pgclient/src/main/kotlin/Benchmark.kt b/frameworks/Kotlin/hexagon/hexagon_jdk_pgclient/src/main/kotlin/Benchmark.kt index d5cdace42f1..58c811603f4 100644 --- a/frameworks/Kotlin/hexagon/hexagon_jdk_pgclient/src/main/kotlin/Benchmark.kt +++ b/frameworks/Kotlin/hexagon/hexagon_jdk_pgclient/src/main/kotlin/Benchmark.kt @@ -1,5 +1,6 @@ package com.hexagontk +import com.hexagontk.core.Platform.systemSettingOrNull import com.hexagontk.core.media.TEXT_HTML import com.hexagontk.core.urlOf import com.hexagontk.http.server.jdk.JdkHttpServer @@ -17,7 +18,7 @@ fun main() { val templateUrl = urlOf("classpath:fortunes.jte") val engine = JdkHttpServer( executor = newVirtualThreadPerTaskExecutor(), - backlog = 2_048 + backlog = systemSettingOrNull("backlog") ?: (8 * 1024), ) val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings) diff --git a/frameworks/Kotlin/hexagon/hexagon_jdk_postgresql/src/main/kotlin/Benchmark.kt b/frameworks/Kotlin/hexagon/hexagon_jdk_postgresql/src/main/kotlin/Benchmark.kt index 67d2a3dfba2..2ca266d7829 100644 --- a/frameworks/Kotlin/hexagon/hexagon_jdk_postgresql/src/main/kotlin/Benchmark.kt +++ b/frameworks/Kotlin/hexagon/hexagon_jdk_postgresql/src/main/kotlin/Benchmark.kt @@ -1,5 +1,6 @@ package com.hexagontk +import com.hexagontk.core.Platform.systemSettingOrNull import com.hexagontk.core.media.TEXT_HTML import com.hexagontk.core.urlOf import com.hexagontk.http.server.jdk.JdkHttpServer @@ -17,7 +18,7 @@ fun main() { val templateUrl = urlOf("classpath:fortunes.jte") val engine = JdkHttpServer( executor = newVirtualThreadPerTaskExecutor(), - backlog = 2_048 + backlog = systemSettingOrNull("backlog") ?: (8 * 1024), ) val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)