The main goal of these performance tests is to collect statistics over routines (open project, highlighting, inspection, autocompletion etc) for further analysis like anomalies, degradations and reference for optimizations.
${KOTLIN_PROJECT}/../perfTestProject
${KOTLIN_PROJECT}/idea/testData/perfTest/helloKotlin
as hello world project in KotlinSubclasses of AbstractKotlinProjectsPerformanceTest
provide statistics (execution time in ms) over some particular (semi-synthetic) actions.
The output is provided to console in TeamCity format like
##teamcity[testSuiteStarted name='Kotlin'] ##teamcity[testStarted name='Project opening perfTestProject' captureStandardOutput='true'] ##teamcity[testMetadata key='Project opening perfTestProject' type='number' value='63'] ##teamcity[testFinished name='Project opening perfTestProject' duration='63'] ##teamcity[testSuiteFinished name='Kotlin']
as well in build/stats.csv
File | ProcessID | Time |
---|---|---|
HelloMain.kt | Highlighting file warm-up HelloMain.kt | 114 |
KtFile.kt | Highlighting file KtFile.kt | 1255 |
TBD: drop @Ignore
from some test cases
Subclasses of WholeProjectPerformanceTest
collect performance metrics to figure out some significant anomalies (e.g. inspection takes ages or even fails) over huge number of files (like kotlin
project itself) on various real use cases.