Я запускаю следующий код, и его выполнение занимает от 3 до 6 секунд как в OSX (Sierra), так и в Windows 10. Я никогда не видел такой медлительности при использовании JSR-223, особенно с учетом простоты того, что оценивается. Копаясь в дереве вызовов в YourKit, кажется, что большую часть этого времени он проводит в KotlinJsr223JvmLocalScriptEngine.getReplEvaluator, но я не могу видеть дальше этого.
Это использует jdk1.8.0_71 и kotlin 1.2.10.
Любые идеи?
Спасибо
import javax.script.ScriptEngineManager
fun main(args: Array<String>) {
System.setProperty("idea.io.use.fallback", "true") // need this on windows, not required on osx it seems!
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
val startTime = System.currentTimeMillis()
engine.eval("val x = 5")
println(System.currentTimeMillis() - startTime)
}
Мой скрипт сборки выглядит следующим образом:
buildscript {
ext.kotlin_version = '1.2.10'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
group 'xxx'
version '1.0-SNAPSHOT'
apply plugin: 'kotlin'
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-script-util:$kotlin_version"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}