GuOrg/Gu.State

Optimize need of reference loop handling.

Closed this issue · 2 comments

Don't use if all member types are sealed and there are no loops.

-|                            Method |         Mean |      Error |     StdDev |       Median |  Ratio | RatioSD | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op |
-|---------------------------------- |-------------:|-----------:|-----------:|-------------:|-------:|--------:|------------:|------------:|------------:|--------------------:|
-|              this_x_Equals_this_y |    12.709 ns |  0.1923 ns |  0.1705 ns |    12.654 ns |   1.00 |    0.00 |           - |           - |           - |                   - |
-|                      ObjectEquals |    12.053 ns |  0.2750 ns |  0.3477 ns |    11.835 ns |   0.96 |    0.03 |           - |           - |           - |                   - |
-|                              Func |     2.773 ns |  0.0090 ns |  0.0080 ns |     2.771 ns |   0.22 |    0.00 |           - |           - |           - |                   - |
-|                          Comparer |     7.740 ns |  0.1888 ns |  0.2318 ns |     7.745 ns |   0.61 |    0.02 |           - |           - |           - |                   - |
-|   EqualByPropertyValuesStructural | 2,851.728 ns | 29.6178 ns | 26.2554 ns | 2,837.853 ns | 224.41 |    3.06 |      0.2060 |      0.0229 |      0.0076 |              1352 B |
-|   EqualByPropertyValuesReferences |   215.176 ns |  4.1996 ns |  4.4935 ns |   215.095 ns |  16.96 |    0.48 |      0.0367 |           - |           - |               232 B |
-| EqualByPropertyValuesWithComparer |   948.558 ns | 18.7358 ns | 31.8148 ns |   932.742 ns |  75.60 |    2.61 |      0.1202 |      0.0191 |      0.0019 |               765 B |
-|      EqualByFieldValuesStructural | 2,935.903 ns | 55.2519 ns | 61.4124 ns | 2,921.848 ns | 230.54 |    6.92 |      0.2060 |      0.0229 |      0.0076 |              1352 B |
-|      EqualByFieldValuesReferences |   214.720 ns |  4.2484 ns |  5.3729 ns |   214.403 ns |  16.82 |    0.33 |      0.0367 |           - |           - |               232 B |
-|    EqualByFieldValuesWithComparer |   924.714 ns | 13.8758 ns | 11.5869 ns |   917.808 ns |  72.70 |    1.40 |      0.1202 |      0.0191 |      0.0019 |               765 B |
-|                            Method |       Mean |     Error |    StdDev | Ratio | RatioSD | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op |
+|---------------------------------- |-----------:|----------:|----------:|------:|--------:|------------:|------------:|------------:|--------------------:|
+|              this_x_Equals_this_y |  11.627 ns | 0.1134 ns | 0.0947 ns |  1.00 |    0.00 |           - |           - |           - |                   - |
+|                      ObjectEquals |  13.997 ns | 0.2715 ns | 0.2788 ns |  1.21 |    0.03 |           - |           - |           - |                   - |
+|                              Func |   2.731 ns | 0.0136 ns | 0.0127 ns |  0.24 |    0.00 |           - |           - |           - |                   - |
+|                          Comparer |   7.712 ns | 0.1903 ns | 0.2540 ns |  0.66 |    0.02 |           - |           - |           - |                   - |
+|   EqualByPropertyValuesStructural | 203.409 ns | 1.9543 ns | 1.6320 ns | 17.50 |    0.15 |      0.0367 |           - |           - |               232 B |
+|   EqualByPropertyValuesReferences | 207.257 ns | 4.1362 ns | 5.5217 ns | 17.59 |    0.37 |      0.0367 |           - |           - |               232 B |
+| EqualByPropertyValuesWithComparer |  75.081 ns | 1.4852 ns | 1.7680 ns |  6.47 |    0.19 |      0.0151 |           - |           - |                96 B |
+|      EqualByFieldValuesStructural | 207.912 ns | 4.1094 ns | 6.6359 ns | 18.11 |    0.66 |      0.0367 |           - |           - |               232 B |
+|      EqualByFieldValuesReferences | 203.727 ns | 4.0381 ns | 5.3908 ns | 17.65 |    0.54 |      0.0367 |           - |           - |               232 B |
+|    EqualByFieldValuesWithComparer |  74.242 ns | 1.4970 ns | 2.0491 ns |  6.33 |    0.16 |      0.0151 |           - |           - |                96 B |

Done.