I tested the slice method and the substring method on a string. In different versions of Scala, this benchmark may perform differently.
object Program {
def main(args: Array[String]): Unit = {
val data =
"abcdef"
// Warm up the JIT.
val test = data.slice(3, 5)
val test2 = data.substring(3, 5)
val t1 = System.currentTimeMillis()
// Version 1: use slice.
for (i <- 0 to 100000000) {
val part = data.slice(3, 5)
if (part !=
"de") {
println(false)
}
}
val t2 = System.currentTimeMillis()
// Version 2: use substring.
for (i <- 0 to 100000000) {
val part = data.substring(3, 5)
if (part !=
"de") {
println(false)
}
}
val t3 = System.currentTimeMillis()
// Print times.
println(t2 - t1)
println(t3 - t2)
}
}
911 ms, slice
550 ms, substring