Skip to content

Instantly share code, notes, and snippets.

@bootjp
Created November 15, 2017 04:07
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save bootjp/2b9003f71681687dbf61a29d6d30e753 to your computer and use it in GitHub Desktop.
Kotlin benchmark String.format vs String.replace
import org.apache.commons.lang.RandomStringUtils
import java.util.*
fun main(args: Array<String>) {
val tryCount = 1000000
val formatStart = Date()
for (i in 1..tryCount) {
var string = "%s%s%s"
string += RandomStringUtils.randomAlphabetic(10)
val aa = string.format(RandomStringUtils.randomAlphabetic(3), RandomStringUtils.randomAlphabetic(3), RandomStringUtils.randomAlphabetic(3))
println(aa)
}
val formatEnd = Date()
val formatTIme = formatEnd.time - formatStart.time
val replaceStart = Date()
for (i in 1..tryCount) {
var string = "%{h}%{s}%{f}"
string += RandomStringUtils.randomAlphabetic(10)
val aa = string.replace("%{h}", RandomStringUtils.randomAlphabetic(3)).replace("%{s}", RandomStringUtils.randomAlphabetic(3)).replace("%{f}", RandomStringUtils.randomAlphabetic(3))
println(aa)
}
val replaceEnd = Date()
val replaceTime = replaceEnd.time - replaceStart.time
println("format end")
println(formatTIme)
println("replace end")
println(replaceTime)
}
@bootjp
Copy link
Author

bootjp commented Nov 15, 2017

Replace thought replacing warm-up of jvm was dominant by replace.

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