Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Don't Merge] Benchmarks #23

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

dbarbashov
Copy link
Contributor

I've adopted Benchmark project from FsPickler. There are some benchmarks that you may find interesting. Some benchmarks fail because of lack of support. Here are results:

FSharp.Json.Benchmarks.Array3D.Array3DRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 7.737 ms 0.1019 ms 0.0903 ms
FSharp.Json NA NA NA

Benchmarks with issues:
Array3DRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.BoxedArray.BoxedArrayRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 10.73 us 0.2112 us 0.3096 us
FSharp.Json 31.65 us 0.6303 us 0.9433 us

FSharp.Json.Benchmarks.Dictionary.DictionaryRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 6.951 ms 0.0966 ms 0.0904 ms
FSharp.Json NA NA NA

Benchmarks with issues:
DictionaryRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.ExceptionBench.ExceptionRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 182.3 us 3.463 us 3.402 us
FSharp.Json NA NA NA

Benchmarks with issues:
ExceptionRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.FloatArray.FloatArrayRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 79.14 us 1.580 us 1.622 us
FSharp.Json NA NA NA

Benchmarks with issues:
FloatArrayRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.FSharpBinTree.FSharpBinaryRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 43.78 ms 0.8672 ms 1.271 ms
FSharp.Json 329.74 ms 6.4648 ms 8.176 ms

FSharp.Json.Benchmarks.FSharpList.FSharpListRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 255.5 us 4.816 us 4.946 us
FSharp.Json 1,378.4 us 27.255 us 33.471 us

FSharp.Json.Benchmarks.FSharpMap.FSharpMapRountrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 46.07 us 0.8742 us 1.007 us
FSharp.Json 226.30 us 4.4776 us 5.822 us

FSharp.Json.Benchmarks.FSharpSet.FSharpSetRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 23.95 us 0.3331 us 0.2953 us
FSharp.Json NA NA NA

Benchmarks with issues:
FSharpSetRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.ISerializable.ISerializableRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 5.921 us 0.1181 us 0.2567 us
FSharp.Json NA NA NA

Benchmarks with issues:
ISerializableRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.LargeObject.LargeFSharpValueRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 449.0 us 1.109 us 1.037 us
FSharp.Json NA NA NA

Benchmarks with issues:
LargeFSharpValueRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.LargeTuple.LargeTupleRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 22.29 us 0.0941 us 0.0880 us
FSharp.Json 68.44 us 0.1671 us 0.1563 us

FSharp.Json.Benchmarks.MemberInfo.MemberInfoRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host] : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG

Method Mean Error
Newtonsoft.Json NA NA
FSharp.Json NA NA

Benchmarks with issues:
MemberInfoRoundtrip.Newtonsoft.Json: DefaultJob
MemberInfoRoundtrip.FSharp.Json: DefaultJob

FSharp.Json.Benchmarks.Poco.PocoRoundtrip

BenchmarkDotNet=v0.11.5, OS=ubuntu 16.04
Intel Core i5-7400 CPU 3.00GHz (Kaby Lake), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.2.203
  [Host]     : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT DEBUG
  DefaultJob : .NET Core 2.2.4 (CoreCLR 4.6.27521.02, CoreFX 4.6.27521.01), 64bit RyuJIT

Method Mean Error StdDev
Newtonsoft.Json 9.588 us 0.0425 us 0.0377 us
FSharp.Json NA NA NA

Benchmarks with issues:
PocoRoundtrip.FSharp.Json: DefaultJob

@dbarbashov
Copy link
Contributor Author

Attached run log so you could see exceptions. Waiting for your suggestions on benchmarks. Maybe add some other libraries to compare?
BenchmarkRun-20190429-105157.log

@vsapronov
Copy link
Collaborator

vsapronov commented Apr 29, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants