Skip to content

REASY/scala-json-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Scala JSON serialization/deserialization benchmark

Introduction

When decision about JSON library should be made because of performance, this benchmark can be helpful. Benchmarked libraries:

This project also demonstrates how to use these different JSON libraries to serialize/deserialize a Scala case class.

Benchmark

Dataset and types (Bird and Place) are from this repo: scala-json-benchmark. For benchmark used jmh via sbt-jmh plugin. File birds.data contains 25000 lines. Each of line is serialized json of Bird.

Results

MacBook Pro (Retina, 13-inch, Early 2015):

  • OS: macOS Sierra 10.12.6
  • CPU: Intel Core i7 3.1 GHz
  • Memory: 16 GB
  • JVM: Java HotSpot(TM) 64-Bit Server VM, 25.181-b13
Serialization
Library Time, ms
jsoniter 50.113
circe 140.868
spray 165.045
lift 206.377
play-json 261.774
Argonaut 306.668
json4s 385.766
Deserialization
Library Time, ms
jsoniter 78.070
circe 130.938
spray 180.159
lift 220.421
Argonaut 319.450
play-json 357.515
json4s 467.872

Desktop machine:

  • OS: Microsoft Windows 10 Pro N x64 [Version 10.0.17134.590]
  • CPU: AMD Ryzen 7 2700X Eight-Core Processor i7 3.7 GHz
  • Memory: DDR4-3200 GHz 16 GB
  • JVM: Java HotSpot(TM) 64-Bit Server VM, 25.201-b09
Serialization
Library Time, ms
jsoniter 41.140
circe 104.434
spray 132.525
lift 171.015
play-json 215.128
Argonaut 255.371
json4s 310.488
Deserialization
Library Time, ms
jsoniter 68.833
circe 117.592
spray 155.961
lift 220.304
Argonaut 264.283
play-json 342.450
json4s 403.946

About

Benchmark of different Scala JSON libraries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages