Make use of contracts of time measurement functions

This commit is contained in:
Ilya Gorbunov
2020-01-21 07:06:52 +03:00
parent d71410bfb5
commit fcada0a5e3
4 changed files with 13 additions and 13 deletions
@@ -56,13 +56,13 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
if (file.extension != "kt") continue
try {
val ktFile = createKtFile(file.toRelativeString(root))
var firFile: FirFile? = null
val firFile: FirFile
time += measureNanoTime {
firFile = ktFile.toFirFile(stubMode)
}
totalLength += StringBuilder().also { FirRenderer(it).visitFile(firFile!!) }.length
totalLength += StringBuilder().also { FirRenderer(it).visitFile(firFile) }.length
counter++
firFile?.accept(object : FirVisitorVoid() {
firFile.accept(object : FirVisitorVoid() {
override fun visitElement(element: FirElement) {
element.acceptChildren(this)
}
@@ -99,15 +99,15 @@ class FirResolveBench(val withProgress: Boolean) {
): List<FirFile> {
return ktFiles.map { file ->
val before = vmStateSnapshot()
var firFile: FirFile? = null
val firFile: FirFile
val time = measureNanoTime {
firFile = builder.buildFirFile(file)
(builder.baseSession.firProvider as FirProviderImpl).recordFile(firFile!!)
(builder.baseSession.firProvider as FirProviderImpl).recordFile(firFile)
}
val after = vmStateSnapshot()
val diff = after - before
recordTime(builder::class, diff, time)
firFile!!
firFile
}.also {
totalTime = timePerTransformer.values.sumByLong { it.time }
}
@@ -119,15 +119,15 @@ class FirResolveBench(val withProgress: Boolean) {
): List<FirFile> {
return files.map { file ->
val before = vmStateSnapshot()
var firFile: FirFile? = null
val firFile: FirFile
val time = measureNanoTime {
firFile = builder.buildFirFile(file)
(builder.session.firProvider as FirProviderImpl).recordFile(firFile!!)
(builder.session.firProvider as FirProviderImpl).recordFile(firFile)
}
val after = vmStateSnapshot()
val diff = after - before
recordTime(builder::class, diff, time)
firFile!!
firFile
}.also {
totalTime = timePerTransformer.values.sumByLong { it.time }
}
@@ -10,12 +10,12 @@ import org.jetbrains.kotlin.konan.file.*
import java.lang.StringBuilder
fun <T> printMillisec(message: String, body: () -> T): T {
var result: T? = null
val msec = measureTimeMillis{
val result: T
val msec = measureTimeMillis {
result = body()
}
println("$message: $msec msec")
return result!!
return result
}
fun profile(message: String, body: () -> Unit) = profileIf(
@@ -128,7 +128,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
}
private fun initializeKotlinContext(context: CompileContext): KotlinCompileContext {
lateinit var kotlinContext: KotlinCompileContext
val kotlinContext: KotlinCompileContext
val time = measureTimeMillis {
kotlinContext = KotlinCompileContext(context)