Skip to content

Instantly share code, notes, and snippets.

@crakaC
Created October 19, 2020 11:16
Show Gist options
  • Save crakaC/a526f66976708af5e58b8dc9ff873bd6 to your computer and use it in GitHub Desktop.
Save crakaC/a526f66976708af5e58b8dc9ff873bd6 to your computer and use it in GitHub Desktop.
String::toIntとInteger::parseIntの差はほとんどないっぽい
import kotlin.system.*
fun main(){
val N = 1_000_000
val K = 100
val stringNums = (1..N).map(Int::toString)
run{
println("it.toInt()")
val t = average(K){
stringNums.map{it.toInt()}
}
println(t)
}
run{
println("String::toInt")
val t = average(K){
stringNums.map(String::toInt)
}
println(t)
}
run{
println("Integer::parseInt")
val t = average(K){
stringNums.map(Integer::parseInt)
}
println(t)
}
}
fun average(n: Int, block: () -> Unit) = (1..n).map{
System.gc()
System.runFinalization()
measureTimeMillis{
block()
}
}.average()
/***** output *****
it.toInt()
29.11
String::toInt
28.92
Integer::parseInt
29.83
*******************/
@crakaC
Copy link
Author

crakaC commented Oct 19, 2020

時間計測する前にちゃんとgcするのがミソ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment