Skip to content

Instantly share code, notes, and snippets.

@contradictioned
Created August 17, 2020 09:00
Show Gist options
  • Save contradictioned/d1a197a9694cec5eb609daa3d3e565a5 to your computer and use it in GitHub Desktop.
Save contradictioned/d1a197a9694cec5eb609daa3d3e565a5 to your computer and use it in GitHub Desktop.
import com.beust.klaxon.Klaxon
import com.google.gson.Gson
data class Person(val name: String, val age: Int)
fun main() {
val p = Person("x", 10)
var cnt = 0
repeat(10000) {
val gson = Gson()
val personString = gson.toJson(p)
val personJson = gson.fromJson(personString, Person::class.java)
cnt += personJson.age
}
val start = System.currentTimeMillis()
repeat(10000) {
val gson = Gson()
val personString = gson.toJson(p)
val personJson = gson.fromJson(personString, Person::class.java)
cnt += personJson.age
}
val end = System.currentTimeMillis()
println("Average duration with GSON: ${(end - start)/10000.0}ms")
repeat(10000) {
val klaxon = Klaxon()
val personString = klaxon.toJsonString(p)
val personJson = klaxon.parse<Person>(personString)!!
cnt += personJson.age
}
val start2 = System.currentTimeMillis()
repeat(10000) {
val klaxon = Klaxon()
val personString = klaxon.toJsonString(p)
val personJson = klaxon.parse<Person>(personString)!!
cnt += personJson.age
}
val end2 = System.currentTimeMillis()
println("Average duration with Klaxon: ${(end2 - start2)/10000.0}ms")
val klaxon = Klaxon()
repeat(10000) {
val personString = klaxon.toJsonString(p)
val personJson = klaxon.parse<Person>(personString)!!
cnt += personJson.age
}
val start3 = System.currentTimeMillis()
repeat(10000) {
val personString = klaxon.toJsonString(p)
val personJson = klaxon.parse<Person>(personString)!!
cnt += personJson.age
}
val end3 = System.currentTimeMillis()
println("Average duration with Klaxon() instantiated once: ${(end3 - start3)/10000.0}ms")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment