kotlinx-benchmark
kotlinx-benchmark copied to clipboard
Kotlin multiplatform benchmarking toolkit
### Targets #130 ## Changelog 1. Whenever a parent of a child class is directly or indirectly annotated with `@State` annotation, our child class will also be considered when generating...
`kotlinx-benchmark` requires benchmark classes to be annotated with `@State`. It seems reasonable to expect that when there is a base class annotated with `@State` providing common routines and state for...
Introduces annotation tests and improves error messages to ensure the library behaves as expected across different use cases. - [x] Verify failure & error message when using `@Param` on `val`...
When running benchmarks on JVM, an old version of JMH is used by default (https://github.com/Kotlin/kotlinx-benchmark/blob/master/gradle.properties#L5). In addition to numerous improvements made in JMH, there were also some bugs fixed. For...
I have a benchmark where a parameter is a string value which may contain a dot (well, it's a filename). When running benchmarks from Idea using a Gradle task, benchmark...
Currently, kotlinx-benchmark implicitly [use](https://github.com/Kotlin/kotlinx-benchmark/blob/231ce03739278a5f0f9805dc2760d568dd7fe64e/plugin/main/src/kotlinx/benchmark/gradle/NativeMultiplatformTasks.kt#L89) release configuration for K/N builds. That's absolutely sane and reasonable default. However, in some cases (like [this](https://youtrack.jetbrains.com/issue/KT-44357)), performance need to be collected and validated for debug...
Benchmark compilation fails when a module has cinterop configuration for a native target. Here's an example project: https://github.com/fzhinkin/kotlinx-benchmark-cinterop-issue/blob/main/build.gradle.kts Compilation fails with: ``` > Task :compileMacosArm64BenchmarkKotlinMacosArm64 FAILED e: Could not find...
Attached is a sample project to reproduce two issues. [benchmark-js-repro.zip](https://github.com/Kotlin/kotlinx-benchmark/files/14082248/benchmark-js-repro.zip) 1. Re-declaration of dependencies. In the `benchmarks` module you're forced to re-declare all `core` dependencies and transitive dependencies. 2. Having...
Updates the documentation to include the `jvmProfiler` advanced config option #146