@@ -2,6 +2,7 @@ package com.avsystem.commons
22package ser
33
44import com .avsystem .commons .serialization .json .{JsonStringInput , JsonStringOutput }
5+ import com .avsystem .commons .serialization .nativejs .{NativeJsonInput , NativeJsonOutput }
56import io .circe .parser ._
67import io .circe .syntax ._
78import japgolly .scalajs .benchmark .gui .GuiSuite
@@ -10,62 +11,86 @@ import japgolly.scalajs.benchmark.{Benchmark, Suite}
1011object JsonBenchmarks {
1112 val suite = GuiSuite (
1213 Suite (" JSON serialization benchmarks" )(
13- Benchmark (" Writing case class: GenCodec" ) {
14+ Benchmark (" Writing case class: GenCodec, String Json format " ) {
1415 JsonStringOutput .write(Something .Example )
1516 },
17+ Benchmark (" Writing case class: GenCodec, Native Json format" ) {
18+ NativeJsonOutput .writeAsString(Something .Example )
19+ },
1620 Benchmark (" Writing case class: Circe" ) {
1721 Something .Example .asJson.noSpaces
1822 },
1923 Benchmark (" Writing case class: uPickle" ) {
2024 upickle.default.write(Something .Example )
2125 },
22- Benchmark (" Reading case class: GenCodec" ) {
26+ Benchmark (" Reading case class: GenCodec, String Json format " ) {
2327 JsonStringInput .read[Something ](Something .ExampleJsonString )
2428 },
29+ Benchmark (" Reading case class: GenCodec, Native Json format" ) {
30+ NativeJsonInput .readString[Something ](Something .ExampleJsonString )
31+ },
2532 Benchmark (" Reading case class: Circe" ) {
2633 decode[Something ](Something .ExampleJsonString ).fold(e => throw e, identity)
2734 },
2835 Benchmark (" Reading case class: uPickle" ) {
2936 upickle.default.read[Something ](Something .ExampleJsonString )
3037 },
3138
32- Benchmark (" Writing sealed hierarchy: GenCodec" ) {
39+ Benchmark (" Writing sealed hierarchy: GenCodec, String Json format " ) {
3340 JsonStringOutput .write(SealedStuff .ExampleList )
3441 },
35- Benchmark (" Writing sealed hierarchy: GenCodec (flat)" ) {
42+ Benchmark (" Writing sealed hierarchy: GenCodec (flat), String Json format " ) {
3643 JsonStringOutput .write(FlatSealedStuff .ExampleList )
3744 },
45+ Benchmark (" Writing sealed hierarchy: GenCodec, Native Json format" ) {
46+ NativeJsonOutput .writeAsString(SealedStuff .ExampleList )
47+ },
48+ Benchmark (" Writing sealed hierarchy: GenCodec (flat), Native Json format" ) {
49+ NativeJsonOutput .writeAsString(FlatSealedStuff .ExampleList )
50+ },
3851 Benchmark (" Writing sealed hierarchy: Circe" ) {
3952 SealedStuff .ExampleList .asJson.noSpaces
4053 },
4154 Benchmark (" Writing sealed hierarchy: uPickle" ) {
4255 upickle.default.write(SealedStuff .ExampleList )
4356 },
44- Benchmark (" Reading sealed hierarchy: GenCodec" ) {
57+ Benchmark (" Reading sealed hierarchy: GenCodec, String Json format " ) {
4558 JsonStringInput .read[List [SealedStuff ]](SealedStuff .ExampleJsonString )
4659 },
47- Benchmark (" Reading sealed hierarchy: GenCodec (flat)" ) {
60+ Benchmark (" Reading sealed hierarchy: GenCodec (flat), String Json format " ) {
4861 JsonStringInput .read[List [FlatSealedStuff ]](FlatSealedStuff .ExampleJsonString )
4962 },
63+ Benchmark (" Reading sealed hierarchy: GenCodec, Native Json format" ) {
64+ NativeJsonInput .readString[List [SealedStuff ]](SealedStuff .ExampleJsonString )
65+ },
66+ Benchmark (" Reading sealed hierarchy: GenCodec (flat), Native Json format" ) {
67+ NativeJsonInput .readString[List [FlatSealedStuff ]](FlatSealedStuff .ExampleJsonString )
68+ },
5069 Benchmark (" Reading sealed hierarchy: Circe" ) {
5170 decode[List [SealedStuff ]](SealedStuff .ExampleJsonString ).fold(e => throw e, identity)
5271 },
5372 Benchmark (" Reading sealed hierarchy: uPickle" ) {
5473 upickle.default.read[List [SealedStuff ]](SealedStuff .ExampleUpickleJsonString )
5574 },
5675
57- Benchmark (" Writing foos: GenCodec" ) {
76+ Benchmark (" Writing foos: GenCodec, String Json format " ) {
5877 JsonStringOutput .write(Foo .ExampleMap )
5978 },
79+ Benchmark (" Writing foos: GenCodec, Native Json format" ) {
80+ NativeJsonOutput .writeAsString(Foo .ExampleMap )
81+ },
6082 Benchmark (" Writing foos: Circe" ) {
6183 Foo .ExampleMap .asJson.noSpaces
6284 },
6385 Benchmark (" Writing foos: uPickle" ) {
6486 upickle.default.write(Foo .ExampleMap )
6587 },
66- Benchmark (" Reading foos: GenCodec" ) {
88+ Benchmark (" Reading foos: GenCodec, String Json format " ) {
6789 JsonStringInput .read[Map [String , Foo ]](Foo .ExampleJsonString )
6890 },
91+ Benchmark (" Reading foos: GenCodec with Native Json format" ) {
92+ NativeJsonInput .readString[Map [String , Foo ]](Foo .ExampleJsonString )
93+ },
6994 Benchmark (" Reading foos: Circe" ) {
7095 decode[Map [String , Foo ]](Foo .ExampleJsonString ).fold(e => throw e, identity)
7196 },
0 commit comments