Skip to content

Commit 0707e84

Browse files
authored
Performance tweaks for Ktor (#794)
* Ktor testing * Small response tweaks * Use JDBC for connections * Tweaks for Ktor's Netty and query param summation * Drop tuning parameters on Ktor Netty engine
1 parent ac29a75 commit 0707e84

8 files changed

Lines changed: 517 additions & 212 deletions

File tree

frameworks/ktor/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ ENTRYPOINT ["java", \
1616
"-XX:+UseNUMA", \
1717
"-XX:+AlwaysPreTouch", \
1818
"-XX:-OmitStackTraceInFastThrow", \
19+
"-Dio.netty.transport.noNative=false", \
1920
"-Dio.netty.buffer.checkBounds=false", \
2021
"-Dio.netty.buffer.checkAccessible=false", \
2122
"-Dio.netty.allocator.maxOrder=10", \

frameworks/ktor/build.gradle.kts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,15 @@ dependencies {
2222
implementation(ktorLibs.server.htmlBuilder)
2323

2424
implementation(libs.exposed.core)
25-
implementation(libs.exposed.r2dbc)
25+
implementation(libs.exposed.jdbc)
2626
implementation(libs.exposed.json)
2727
implementation(libs.logback.classic)
2828
implementation(libs.postgresql)
29-
implementation(libs.r2dbc.pool)
29+
implementation(libs.hikaricp)
30+
runtimeOnly(libs.netty.native.epoll)
31+
32+
testImplementation(kotlin("test"))
33+
testImplementation(ktorLibs.server.testHost)
3034
}
3135

3236
ktor {

frameworks/ktor/gradle/libs.versions.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ kotlin = "2.3.21"
44

55
[libraries]
66
logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.15" }
7+
netty-native-epoll = { module = "io.netty:netty-transport-native-epoll", version = "4.2.14.Final" }
78

89
# Database
910
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
10-
exposed-r2dbc = { module = "org.jetbrains.exposed:exposed-r2dbc", version.ref = "exposed" }
11+
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
1112
exposed-json = { module = "org.jetbrains.exposed:exposed-json", version.ref = "exposed" }
12-
postgresql = { module = "org.postgresql:r2dbc-postgresql", version = "1.1.1.RELEASE" }
13-
r2dbc-pool = { module = "io.r2dbc:r2dbc-pool", version = "1.0.2.RELEASE" }
13+
postgresql = { module = "org.postgresql:postgresql", version = "42.7.4" }
14+
hikaricp = { module = "com.zaxxer:HikariCP", version = "6.2.1" }
1415

1516
[plugins]
1617
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }

0 commit comments

Comments
 (0)