From 7ffcc2cbfa0a9ba9c701eec47e2da1808e7327ac Mon Sep 17 00:00:00 2001 From: Petr Onderka Date: Sun, 13 Oct 2019 08:52:20 +0200 Subject: [PATCH 1/2] Added serializing object property to JSON --- .../micro/corefx/System.Text.Json/Serializer/WriteJson.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs b/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs index 0bdc7faa8a0..69f3cf31bf3 100644 --- a/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs +++ b/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs @@ -54,6 +54,10 @@ public async Task SerializeToStream() await JsonSerializer.SerializeAsync(_memoryStream, _value); } + [BenchmarkCategory(Categories.CoreFX, Categories.JSON)] + [Benchmark] + public string SerializeObjectProperty() => JsonSerializer.Serialize(new { Prop = (object)_value }); + [GlobalCleanup] public void Cleanup() => _memoryStream.Dispose(); } From 05ff88fcae9ac0c5c88e9ad1dd67da8314d662a1 Mon Sep 17 00:00:00 2001 From: Petr Onderka Date: Sun, 13 Oct 2019 11:29:10 +0200 Subject: [PATCH 2/2] Avoid allocation inside the benchmark --- .../micro/corefx/System.Text.Json/Serializer/WriteJson.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs b/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs index 69f3cf31bf3..8cdf9d42d08 100644 --- a/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs +++ b/src/benchmarks/micro/corefx/System.Text.Json/Serializer/WriteJson.cs @@ -28,6 +28,7 @@ public class WriteJson { private T _value; private MemoryStream _memoryStream; + private object _objectWithObjectProperty; [GlobalSetup] public async Task Setup() @@ -36,6 +37,8 @@ public async Task Setup() _memoryStream = new MemoryStream(capacity: short.MaxValue); await JsonSerializer.SerializeAsync(_memoryStream, _value); + + _objectWithObjectProperty = new { Prop = (object)_value }; } [BenchmarkCategory(Categories.CoreFX, Categories.JSON)] @@ -56,7 +59,7 @@ public async Task SerializeToStream() [BenchmarkCategory(Categories.CoreFX, Categories.JSON)] [Benchmark] - public string SerializeObjectProperty() => JsonSerializer.Serialize(new { Prop = (object)_value }); + public string SerializeObjectProperty() => JsonSerializer.Serialize(_objectWithObjectProperty); [GlobalCleanup] public void Cleanup() => _memoryStream.Dispose();