Add performance benchmark to notesRetrieve operation
This commit is contained in:
parent
9986e7a2d2
commit
17d2344dcf
15
api/pom.xml
15
api/pom.xml
@ -49,6 +49,16 @@
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack</id>
|
||||
<url>https://jitpack.io</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -118,6 +128,11 @@
|
||||
<artifactId>ktorm-support-mysql</artifactId>
|
||||
<version>${ktorm_version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.hekeki</groupId>
|
||||
<artifactId>huckleberry</artifactId>
|
||||
<version>0.0.2-beta</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.flywaydb</groupId>
|
||||
<artifactId>flyway-core</artifactId>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<root level="trace">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
<logger name="org.eclipse.jetty" level="INFO"/>
|
||||
|
||||
50
api/test/NotesRetrievePerformanceTest.kt
Normal file
50
api/test/NotesRetrievePerformanceTest.kt
Normal file
@ -0,0 +1,50 @@
|
||||
import be.vandewalleh.services.NotesService
|
||||
import be.vandewalleh.services.UserService
|
||||
import com.hekeki.huckleberry.Benchmark
|
||||
import com.hekeki.huckleberry.BenchmarkRunner
|
||||
import com.hekeki.huckleberry.BenchmarkTest
|
||||
import com.hekeki.huckleberry.TimeUnit
|
||||
import com.zaxxer.hikari.HikariConfig
|
||||
import com.zaxxer.hikari.HikariDataSource
|
||||
import me.liuwj.ktorm.database.*
|
||||
import org.junit.jupiter.api.Assertions.*
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.kodein.di.Kodein
|
||||
import org.kodein.di.generic.bind
|
||||
import org.kodein.di.generic.instance
|
||||
import org.kodein.di.generic.singleton
|
||||
|
||||
|
||||
val hikariConfig = HikariConfig().apply {
|
||||
jdbcUrl = "jdbc:mariadb://localhost:3306/Notes"
|
||||
username = "test"
|
||||
password = "test"
|
||||
}
|
||||
|
||||
val dataSource = HikariDataSource(hikariConfig)
|
||||
|
||||
val db = Database.Companion.connect(dataSource)
|
||||
|
||||
val kodein = Kodein {
|
||||
bind<Database>() with singleton { db }
|
||||
bind<UserService>() with singleton { UserService(this.kodein) }
|
||||
bind<NotesService>() with singleton { NotesService(this.kodein) }
|
||||
}
|
||||
|
||||
val notesService by kodein.instance<NotesService>()
|
||||
|
||||
@Benchmark(threads = 1, iterations = 30, warmup = true, warmupIterations = 1000, timeUnit = TimeUnit.MILLIS)
|
||||
class RetrieveNotesBenchmarkTest : BenchmarkTest {
|
||||
|
||||
override fun execute() {
|
||||
notesService.getNotes(15)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun compute() {
|
||||
val benchmarkResult = BenchmarkRunner(RetrieveNotesBenchmarkTest::class.java).run()
|
||||
assertTrue(benchmarkResult.median(2, TimeUnit.MILLIS))
|
||||
assertTrue(benchmarkResult.maxTime(4, TimeUnit.MILLIS))
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user