Browse Source

Upgrade ktor version for performance checks in continuous environment (#3334)

* Upgrade ktor version for performance checks in continuous environment

* ktor: Synchronize pool and thread sizes, make db setup lazy
Ilya Ryzhenkov 7 years ago
parent
commit
56a0eb0b4d

+ 1 - 1
frameworks/Kotlin/ktor/pom.xml

@@ -16,7 +16,7 @@
         <gson.version>2.8.2</gson.version>
         <hikaricp.version>2.7.4</hikaricp.version>
         <kotlin.version>1.2.21</kotlin.version>
-        <ktor.version>0.9.1</ktor.version>
+        <ktor.version>0.9.2-alpha-1</ktor.version>
         <logback.version>1.2.3</logback.version>
         <mysql-connector.version>5.1.44</mysql-connector.version>
     </properties>

+ 4 - 6
frameworks/Kotlin/ktor/src/main/kotlin/org/jetbrains/ktor/benchmarks/Hello.kt

@@ -23,16 +23,14 @@ data class Fortune(val id: Int, var message: String)
 fun Application.main() {
     val gson = GsonBuilder().create()
     val DbRows = 10000
-    Driver::class.java.newInstance()
     val pool by lazy {
         hikari()
     }
 
-    val counter = AtomicInteger()
-    val databaseExecutor = Executors.newFixedThreadPool(256) { r ->
-        Thread(r, "db-${counter.incrementAndGet()}-thread")
+    val databaseDispatcher by lazy {
+        val counter = AtomicInteger()
+        Executors.newFixedThreadPool(100) { r -> Thread(r, "db-${counter.incrementAndGet()}-thread") }.asCoroutineDispatcher()
     }
-    val databaseDispatcher = databaseExecutor.asCoroutineDispatcher()
 
     install(DefaultHeaders)
 
@@ -44,7 +42,7 @@ fun Application.main() {
         }
 
         get("/json") {
-            val content =  TextContent(gson.toJson(Message()), ContentType.Application.Json, HttpStatusCode.OK)
+            val content = TextContent(gson.toJson(Message()), ContentType.Application.Json, HttpStatusCode.OK)
             call.respond(content)
         }