Skip to content

Conversation

@layomia
Copy link
Contributor

@layomia layomia commented Mar 11, 2020

Benchmarks scenarios enabled by dotnet/runtime#33444.

cc @adamsitnik @steveharter @jozkee


LoginViewModel, Parameterized_LoginViewModel_Immutable, Parameterized_LoginViewModel_2Args

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 522.3 ns 5.26 ns 4.39 ns 522.8 ns 515.8 ns 530.0 ns 1.00 0.00 0.0390 - - 168 B
Deserialize_Parameterized_Immutable 585.8 ns 4.29 ns 3.59 ns 585.7 ns 579.1 ns 593.5 ns 1.12 0.01 0.0513 - - 216 B
Deserialize_Parameterized_Mutable 864.0 ns 6.97 ns 5.82 ns 865.2 ns 854.3 ns 870.7 ns 1.65 0.02 0.0482 - - 216 B

Location, Parameterized_Location_Immutable, Parameterized_Location_5Args

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 1.327 us 0.0094 us 0.0073 us 1.326 us 1.318 us 1.341 us 1.00 0.00 0.1026 - - 448 B
Deserialize_Parameterized_Immutable 1.480 us 0.0111 us 0.0103 us 1.481 us 1.462 us 1.500 us 1.11 0.01 0.1115 - - 472 B
Deserialize_Parameterized_Mutable 2.061 us 0.0179 us 0.0167 us 2.052 us 2.043 us 2.090 us 1.55 0.02 0.1066 - - 472 B

IndexViewModel, Parameterized_IndexViewModel_Immutable, Parameterized_IndexViewModel_2Args

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 30.99 us 0.209 us 0.185 us 30.96 us 30.74 us 31.35 us 1.00 5.4395 0.3709 - 22.38 KB
Deserialize_Parameterized_Immutable 31.55 us 0.175 us 0.146 us 31.55 us 31.18 us 31.79 us 1.02 5.4000 - - 22.43 KB
Deserialize_Parameterized_Mutable 44.99 us 0.368 us 0.344 us 45.00 us 44.49 us 45.64 us 1.45 5.4216 - - 22.43 KB

MyEventsListerViewModel, Parameterized_MyEventsListerViewModel_Immutable, Parameterized_MyEventsListerViewModel

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 350.0 us 1.55 us 1.37 us 349.9 us 346.5 us 352.2 us 1.00 18.2073 4.2017 - 77.27 KB
Deserialize_Parameterized_Immutable 356.6 us 1.97 us 1.84 us 357.4 us 353.7 us 359.0 us 1.02 18.6514 2.8694 - 77.33 KB
Deserialize_Parameterized_Mutable 371.5 us 1.16 us 1.02 us 371.6 us 369.7 us 373.3 us 1.06 17.8042 2.9674 - 77.32 KB

Parameterless_Point, Parameterized_Point_Immutable, Parameterized_Point_1Arg

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 407.6 ns 1.87 ns 1.46 ns 407.7 ns 403.6 ns 409.5 ns 1.00 0.00 0.0049 - - 24 B
Deserialize_Parameterized_Immutable 450.4 ns 3.83 ns 3.40 ns 450.8 ns 442.0 ns 455.1 ns 1.10 0.01 0.0142 - - 64 B
Deserialize_Parameterized_Mutable 731.5 ns 5.27 ns 4.93 ns 733.1 ns 723.5 ns 740.5 ns 1.80 0.02 0.0146 - - 72 B

Parameterless_ClassWithPrimitives, Parameterized_ClassWithPrimitives_Immutable, Parameterized_ClassWithPrimitives_4Args

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Deserialize_Parameterless 1.569 us 0.0133 us 0.0118 us 1.572 us 1.547 us 1.587 us 1.00 0.0253 - - 120 B
Deserialize_Parameterized_Immutable 1.741 us 0.0127 us 0.0118 us 1.742 us 1.718 us 1.762 us 1.11 0.0630 - - 288 B
Deserialize_Parameterized_Mutable 2.244 us 0.0145 us 0.0136 us 2.250 us 2.226 us 2.261 us 1.43 0.0357 - - 152 B

Async LoginViewModel, Parameterized_LoginViewModel_Immutable, Parameterized_LoginViewModel_2Args

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 779.8 ns 7.03 ns 5.87 ns 782.0 ns 768.3 ns 787.6 ns 1.00 0.00 0.0531 - - 240 B
DeserializeAsync_Parameterized_Immutable 844.0 ns 4.85 ns 4.30 ns 845.4 ns 836.9 ns 848.7 ns 1.08 0.01 0.0668 - - 288 B
DeserializeAsync_Parameterized_Mutable 1,124.2 ns 7.90 ns 7.39 ns 1,124.5 ns 1,111.2 ns 1,134.5 ns 1.44 0.02 0.0818 - - 352 B

Async Location, Parameterized_Location_Immutable, Parameterized_Location_5Args

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 1.559 us 0.0082 us 0.0068 us 1.558 us 1.550 us 1.577 us 1.00 0.00 0.1182 - - 520 B
DeserializeAsync_Parameterized_Immutable 1.754 us 0.0237 us 0.0210 us 1.759 us 1.728 us 1.781 us 1.12 0.02 0.1258 - - 544 B
DeserializeAsync_Parameterized_Mutable 2.493 us 0.0143 us 0.0134 us 2.488 us 2.472 us 2.516 us 1.60 0.01 0.2481 - - 1048 B

Async IndexViewModel, Parameterized_IndexViewModel_Immutable, Parameterized_IndexViewModel_2Args

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 33.57 us 0.279 us 0.261 us 33.53 us 33.14 us 34.10 us 1.00 5.4820 - - 22.45 KB
DeserializeAsync_Parameterized_Immutable 33.63 us 0.215 us 0.179 us 33.62 us 33.21 us 33.94 us 1.00 5.4496 0.1434 - 22.5 KB
DeserializeAsync_Parameterized_Mutable 47.27 us 0.243 us 0.227 us 47.37 us 46.88 us 47.54 us 1.41 8.3428 0.3792 - 34.74 KB

Async MyEventsListerViewModel, Parameterized_MyEventsListerViewModel_Immutable, Parameterized_MyEventsListerViewModel_2Args

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 410.4 us 1.34 us 1.12 us 410.5 us 408.0 us 411.9 us 1.00 18.0921 4.9342 - 78.87 KB
DeserializeAsync_Parameterized_Immutable 424.5 us 1.63 us 1.45 us 424.6 us 421.3 us 427.0 us 1.03 18.7075 5.1020 - 78.91 KB
DeserializeAsync_Parameterized_Mutable 447.2 us 2.72 us 2.41 us 447.3 us 443.2 us 452.0 us 1.09 21.3144 7.1048 - 91.82 KB

Async Parameterless_Point, Parameterized_Point_Immutable, Parameterized_Point_1Arg

Method Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 621.5 ns 4.58 ns 4.29 ns 622.9 ns 613.1 ns 625.5 ns 1.00 0.00 0.0199 - - 96 B
DeserializeAsync_Parameterized_Immutable 663.2 ns 3.29 ns 2.92 ns 663.8 ns 656.5 ns 666.2 ns 1.07 0.01 0.0291 - - 136 B
DeserializeAsync_Parameterized_Mutable 1,004.4 ns 6.96 ns 6.51 ns 1,005.5 ns 990.3 ns 1,018.2 ns 1.62 0.02 0.0365 - - 176 B

Async Parameterless_ClassWithPrimitives, Parameterized_ClassWithPrimitives_Immutable, Parameterized_ClassWithPrimitives_4Args

Method Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
DeserializeAsync_Parameterless 1.831 us 0.0149 us 0.0132 us 1.835 us 1.809 us 1.849 us 1.00 0.0367 - - 192 B
DeserializeAsync_Parameterized_Immutable 2.004 us 0.0263 us 0.0246 us 2.001 us 1.975 us 2.050 us 1.10 0.0791 - - 360 B
DeserializeAsync_Parameterized_Mutable 2.656 us 0.0181 us 0.0151 us 2.656 us 2.628 us 2.686 us 1.45 0.1683 - - 704 B

[GenericTypeArguments(typeof(MyEventsListerViewModel), typeof(Parameterized_MyEventsListerViewModel_Immutable), typeof(Parameterized_MyEventsListerViewModel_2Args))]
[GenericTypeArguments(typeof(Parameterless_Point), typeof(Parameterized_Point_Immutable), typeof(Parameterized_Point_1Arg))]
[GenericTypeArguments(typeof(Parameterless_ClassWithPrimitives), typeof(Parameterized_ClassWithPrimitives_Immutable), typeof(Parameterized_ClassWithPrimitives_4Args))]
public class ReadParameterizedConstructor<TTypeWithParameterlessCtor, TTypeWithParameterizedCtor1, TTypeWithParameterizedCtorType2>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to wrap my head around it and figure a way we could shorten the benchmark name, because as of today it would be something like:

System.Text.Json.Serialization.Tests.ReadParameterizedConstructor<SimpleStructWithProperties, SimpleStructWithProperties_Immutable, SimpleStructWithProperties_1Arg>.Deserialize_Parameterless

Which would make hard to read the results both from console and the Reporting System

@layomia
Copy link
Contributor Author

layomia commented Apr 3, 2020

I'll reopen this when I'm ready to drive this through.

@layomia layomia closed this Apr 3, 2020
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.

2 participants