package Ġkotlinx . io . tests . benchmarks Ċ Ċ import Ġkotlinx . io . core .* Ċ import Ġorg . openjdk . j mh . annotations .* Ċ import Ġjava . util . concurrent .* Ċ Ċ @ State ( Scope . Benchmark ) Ċ @ Fork ( 1 ) Ċ @ W arm up ( iterations Ġ= Ġ 1 0 ) Ċ @ Measurement ( iterations Ġ= Ġ 1 5 ) Ċ //@ Benchmark Mode ( Mode . Through put , ĠMode . Average Time ) Ċ @ Benchmark Mode ( Mode . Through put ) Ċ @ Output TimeUnit ( TimeUnit . MILLISECONDS ) Ċ class ĠText Decode Benchmark Ġ{ ĊĊĊĠĠĠ Ġ/* Ċ # ĠRun Ġcomplete . ĠTotal Ġtime : Ġ 0 0 : 0 5 : 0 5 Ċ Ċ Benchmark ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMode Ġ ĠC nt ĠĠĠĠĠ ĠScore ĠĠĠĠ ĠError ĠĠ ĠUnits Ċ Text Decode Benchmark . large ASCI IK t ĠĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠĠ 5 , 0 9 0 ĠÂ ± ĠĠĠ 0 , 1 8 6 Ġ Ġops / ms Ċ Text Decode Benchmark . large ASCII Reader ĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠ 1 7 , 3 7 4 ĠÂ ± ĠĠĠ 0 , 7 6 9 Ġ Ġops / ms Ċ Text Decode Benchmark . large ASCII String Ctor Ġ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠ 4 9 , 8 7 0 ĠÂ ± ĠĠĠ 2 , 7 0 0 Ġ Ġops / ms Ċ Text Decode Benchmark . large Mb Kt ĠĠĠĠĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠĠ 3 , 1 4 6 ĠÂ ± ĠĠĠ 0 , 0 6 6 Ġ Ġops / ms Ċ Text Decode Benchmark . large Mb Reader ĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠĠ 6 , 1 3 7 ĠÂ ± ĠĠĠ 0 , 2 4 4 Ġ Ġops / ms Ċ Text Decode Benchmark . large Mb String Ctor ĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠĠĠ 7 , 6 4 0 ĠÂ ± ĠĠĠ 0 , 5 4 1 Ġ Ġops / ms Ċ Text Decode Benchmark . small ASCI IK t ĠĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠ 1 1 7 6 6 , 7 5 3 ĠÂ ± Ġ 3 7 1 , 3 9 6 Ġ Ġops / ms Ċ Text Decode Benchmark . small ASCII Reader ĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠ 5 8 4 , 4 2 6 ĠÂ ± ĠĠ 6 7 , 4 6 4 Ġ Ġops / ms Ċ Text Decode Benchmark . small ASCII String Ctor Ġ Ġthr pt ĠĠĠ 1 5 ĠĠ 2 7 1 5 7 , 1 5 3 ĠÂ ± Ġ 9 6 5 , 7 7 4 Ġ Ġops / ms Ċ Text Decode Benchmark . small Mb Kt ĠĠĠĠĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠ 9 2 5 6 , 5 4 2 ĠÂ ± Ġ 4 7 8 , 1 2 0 Ġ Ġops / ms Ċ Text Decode Benchmark . small Mb Reader ĠĠĠĠĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠĠĠ 6 4 2 , 2 4 1 ĠÂ ± ĠĠ 4 8 , 8 7 2 Ġ Ġops / ms Ċ Text Decode Benchmark . small Mb String Ctor ĠĠĠĠ Ġthr pt ĠĠĠ 1 5 ĠĠ 1 9 3 7 1 , 1 1 7 ĠÂ ± Ġ 4 3 7 , 9 3 0 Ġ Ġops / ms ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall Mb Kt () Ġ= Ġsmall Text Packet . copy (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall Mb Reader () Ġ= Ġsmall Text Bytes . inputStream (). reader (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall Mb String Ctor () Ġ= ĠString ( small Text Bytes , ĠChar sets . UTF _ 8 ) ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge Mb Kt () Ġ= Ġlarge Text Packet . copy (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge Mb Reader () Ġ= Ġlarge Text Bytes . inputStream (). reader (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge Mb String Ctor () Ġ= ĠString ( large Text Bytes , ĠChar sets . UTF _ 8 ) ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall ASCI IK t () Ġ= Ġsmall Text Packet ASCII . copy (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall ASCII Reader () Ġ= Ġsmall Text Bytes ASCII . inputStream (). reader (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġsmall ASCII String Ctor () Ġ= ĠString ( small Text Bytes ASCII , ĠChar sets . UTF _ 8 ) ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge ASCI IK t () Ġ= Ġlarge Text Packet ASCII . copy (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge ASCII Reader () Ġ= Ġlarge Text Bytes ASCII . inputStream (). reader (). read Text () ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġlarge ASCII String Ctor () Ġ= ĠString ( large Text Bytes ASCII , ĠChar sets . UTF _ 8 ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsmall Text Bytes Ġ= Ġ"\ u 0 4 2 2 \ u 0 4 3 2 \ u 0 4 3 7 .". toByteArray ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsmall Text Bytes ASCII Ġ= Ġ" ABC .". toByteArray ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlarge Text Bytes Ġ= ĠByteArray ( small Text Bytes . size Ġ* Ġ 1 0 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsmall Text Bytes [ it Ġ% Ġsmall Text Bytes . size ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlarge Text Bytes ASCII Ġ= ĠByteArray ( small Text Bytes ASCII . size Ġ* Ġ 1 0 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsmall Text Bytes ASCII [ it Ġ% Ġsmall Text Bytes ASCII . size ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsmall Text Packet Ġ= Ġbuild Packet Ġ{ Ġwrite Fully ( small Text Bytes ) Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsmall Text Packet ASCII Ġ= Ġbuild Packet Ġ{ Ġwrite Fully ( small Text Bytes ASCII ) Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlarge Text Packet Ġ= Ġbuild Packet Ġ{ Ġwrite Fully ( large Text Bytes ) Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlarge Text Packet ASCII Ġ= Ġbuild Packet Ġ{ Ġwrite Fully ( large Text Bytes ASCII ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ }