История изменений
Исправление RedPossum, (текущая версия) :
вот очень наивная реализация прогрева
import java.io.{File, FileInputStream}
import org.yaml.snakeyaml.Yaml
object yamlBnch {
val WAMRING_TIMES=100;
val BENCH_TIMES=50;
def parseYaml():Int={
val input = new FileInputStream(new File("data.yml"))
val yaml = new Yaml()
val data = yaml.load(input).asInstanceOf[java.util.LinkedHashMap[String, String]]
input.close();
data.size();
}
def main(args:Array[String]){
println("Start warming")
for ( i <- 0 until WAMRING_TIMES){
parseYaml()
}
println("Stop warming")
var timeResults=List.empty[Long]
var keysCountResults=List.empty[Int]
println("Start bench")
for ( i <- 0 until BENCH_TIMES){
val start=System.currentTimeMillis()
var currentKeyResult=parseYaml()
val stop=System.currentTimeMillis()
keysCountResults=(currentKeyResult)::keysCountResults
timeResults=(stop - start)::timeResults
}
println("Stop bench")
val finalTimeResult = timeResults.sum/timeResults.size
val finalKeySum=keysCountResults.sum
println((finalTimeResult/1000.0)+" | "+finalKeySum)
}
}
Собственно парсер тот же (snakeyaml). Результат:
java -jar -client yamlbench.jar
Start warming
Stop warming
Start bench
Stop bench
0.932 | 250
0.932 секунды
Исходная версия RedPossum, :
вот очень наивная реализация прогрева
import java.io.{File, FileInputStream}
import org.yaml.snakeyaml.Yaml
object yamlBnch {
val WAMRING_TIMES=100;
val BENCH_TIMES=50;
def parseYaml():Int={
val input = new FileInputStream(new File("data.yml"))
val yaml = new Yaml()
val data = yaml.load(input).asInstanceOf[java.util.LinkedHashMap[String, String]]
input.close();
data.size();
}
def main(args:Array[String]){
//warming
println("Start warming")
for ( i <- 0 until WAMRING_TIMES){
parseYaml()
}
println("Stop warming")
var timeResults=List.empty[Long]
var keysCountResults=List.empty[Int]
println("Start bench")
for ( i <- 0 until BENCH_TIMES){
val start=System.currentTimeMillis()
var currentKeyResult=parseYaml()
val stop=System.currentTimeMillis()
keysCountResults=(currentKeyResult)::keysCountResults
timeResults=(stop - start)::timeResults
}
println("Stop bench")
val finalTimeResult = timeResults.sum/timeResults.size
val finalKeySum=keysCountResults.sum
println((finalTimeResult/1000.0)+" | "+finalKeySum)
}
}
Собственно парсер тот же (snakeyaml). Результат:
java -jar -client yamlbench.jar
Start warming
Stop warming
Start bench
Stop bench
0.932 | 250
0.932 секунды