package Ġkotlinx . benchmarks . json Ċ Ċ import Ġkotlinx . benchmarks . model .* Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . json .* Ċ import Ġkotlinx . serialization . json . Json . Default . decode FromString Ċ import Ġkotlinx . serialization . json . Json . Default . encode ToString Ċ import Ġorg . openjdk . j mh . annotations .* Ċ import Ġjava . util . concurrent .* Ċ Ċ @ W arm up ( iterations Ġ= Ġ 7 , Ġtime Ġ= Ġ 1 ) Ċ @ Measurement ( iterations Ġ= Ġ 5 , Ġtime Ġ= Ġ 1 ) Ċ @ Benchmark Mode ( Mode . Through put ) Ċ @ Output TimeUnit ( TimeUnit . MILLISECONDS ) Ċ @ State ( Scope . Benchmark ) Ċ @ Fork ( 2 ) Ċ open Ġclass ĠTwitter Benchmark Ġ{ ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠTwitter Ġfeed Ġbenchmark . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġsmall Ġpiece Ġof Ġtwitter Ġfeed Ġtaken Ġfrom Ġone Ġof Ġthe Ġsim d json Ġrepository ĊĠĠĠĠ Ġ* Ġwith ĠKotlin Ġclasses Ġgenerated Ġby ĠJson 2 Kotlin Ġplugin Ġ( and Ġalso Ġmanually Ġadjusted ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġinput Ġ= ĠTwitter Benchmark :: class . java . getResource ("/ twitter . json "). read Bytes (). decode ToString () ĊĠĠĠ Ġprivate Ġval Ġtwitter Ġ= ĠJson . decode FromString ( Twitter . serializer (), Ġinput ) ĊĊĠĠĠ Ġ@ Setup ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( twitter Ġ== ĠJson . decode FromString ( Twitter . serializer (), ĠJson . encode ToString ( Twitter . serializer (), Ġtwitter ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOrder Ġof Ġmagnitude : Ġ 4 - 7 Ġop / ms ĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġdecode Twitter () Ġ= ĠJson . decode FromString ( Twitter . serializer (), Ġinput ) ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġencode Twitter () Ġ= ĠJson . encode ToString ( Twitter . serializer (), Ġtwitter ) Ċ } Ċ