Skip to content

Latest commit

 

History

History
336 lines (299 loc) · 70.2 KB

File metadata and controls

336 lines (299 loc) · 70.2 KB

Sampling profile diff

Took 4.44s → 4.73s (+291.47ms, +6.6%).

Category Change Delta % Time
Ours +3.6% +122.26ms 76.1% → 74.0% 3.38s → 3.50s
Standard library +15.5% +149.81ms 21.8% → 23.6% 968.1ms → 1.11s
Native +20.7% +19.40ms 2.1% → 2.4% 93.6ms → 113.0ms
Unknown +22.0% +<0.01µs <0.1% <0.1µs

Hottest functions

Self time

Regressions

Functions with the largest increase in time spent directly in the function body, excluding callees.

Change Delta % Time Function Location
+33.1% +386.26ms 26.2% → 32.8% 1.16s → 1.55s ReadForType(JsonContract, bool) Newtonsoft.Json.JsonReader
+32.5% +191.97ms 13.3% → 16.5% 591.3ms → 783.3ms CopyTo(Array, int32) System.Collections.Generic.List`1[System.__Canon].System.Collections.ICollection
+25.9% +20.23ms 1.8% → 2.1% 78.1ms → 98.3ms PopulateList(IList, JsonReader, JsonArrayContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+41.9% +19.70ms 1.1% → 1.4% 47.0ms → 66.7ms SerializeValue(JsonWriter, Object, JsonContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
+20.7% +19.40ms 2.1% → 2.4% 93.6ms → 113.0ms UNMANAGED_CODE_TIME <unknown>
+30.5% +12.67ms 0.9% → 1.1% 41.6ms → 54.3ms ParsePostValue(bool) Newtonsoft.Json.JsonTextReader
+398.5% +10.82ms 0.1% → 0.3% 2.7ms → 13.5ms ChkCastInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
+31.6% +8.94ms 0.6% → 0.8% 28.2ms → 37.2ms Memmove(unsigned int8&, unsigned int8&, unsigned int) System.Buffer
+101.3% +6.87ms 0.2% → 0.3% 6.8ms → 13.7ms TryGetValueInternal(Tables<!0, !1>, !0, int32, !1&) System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]
+43.3% +5.88ms 0.3% → 0.4% 13.6ms → 19.5ms ReadAsDouble() Newtonsoft.Json.JsonTextReader
+60.8% +5.67ms 0.2% → 0.3% 9.3ms → 15.0ms CreateValueInternal(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+69.4% +5.60ms 0.2% → 0.3% 8.1ms → 13.7ms SetStateBasedOnCurrent() Newtonsoft.Json.JsonReader
+409.1% +5.56ms <0.1% → 0.1% 1.4ms → 6.9ms Get(wchar[], int32, int32) Newtonsoft.Json.DefaultJsonNameTable
+41.2% +5.55ms 0.3% → 0.4% 13.5ms → 19.0ms WriteValue(float64) Newtonsoft.Json.JsonTextWriter
+78.6% +4.23ms 0.1% → 0.2% 5.4ms → 9.6ms RoundNumber(NumberBuffer&, int32, bool) System.Number
+31.3% +4.21ms 0.3% → 0.4% 13.4ms → 17.7ms IndexOf(!0[], !0, int32, int32) System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]
new +4.17ms 0.0% → 0.1% 0ms → 4.2ms IndexOf(!!0[], !!0, int32, int32) System.Array
+44.0% +4.10ms 0.2% → 0.3% 9.3ms → 13.4ms StelemRef(Array, int, Object) System.Runtime.CompilerServices.CastHelpers
new +4.04ms 0.0% → 0.1% 0ms → 4.0ms WriteIntegerValue(int32) Newtonsoft.Json.JsonTextWriter
new +2.76ms 0.0% → 0.1% 0ms → 2.8ms AddWithResize(!0) System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]
Ours
Change Delta % Time Function Location
+33.1% +386.26ms 26.2% → 32.8% 1.16s → 1.55s ReadForType(JsonContract, bool) Newtonsoft.Json.JsonReader
+25.9% +20.23ms 1.8% → 2.1% 78.1ms → 98.3ms PopulateList(IList, JsonReader, JsonArrayContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+41.9% +19.70ms 1.1% → 1.4% 47.0ms → 66.7ms SerializeValue(JsonWriter, Object, JsonContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
+30.5% +12.67ms 0.9% → 1.1% 41.6ms → 54.3ms ParsePostValue(bool) Newtonsoft.Json.JsonTextReader
+43.3% +5.88ms 0.3% → 0.4% 13.6ms → 19.5ms ReadAsDouble() Newtonsoft.Json.JsonTextReader
+60.8% +5.67ms 0.2% → 0.3% 9.3ms → 15.0ms CreateValueInternal(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+69.4% +5.60ms 0.2% → 0.3% 8.1ms → 13.7ms SetStateBasedOnCurrent() Newtonsoft.Json.JsonReader
+409.1% +5.56ms <0.1% → 0.1% 1.4ms → 6.9ms Get(wchar[], int32, int32) Newtonsoft.Json.DefaultJsonNameTable
+41.2% +5.55ms 0.3% → 0.4% 13.5ms → 19.0ms WriteValue(float64) Newtonsoft.Json.JsonTextWriter
new +4.04ms 0.0% → 0.1% 0ms → 4.0ms WriteIntegerValue(int32) Newtonsoft.Json.JsonTextWriter
new +2.75ms 0.0% → 0.1% 0ms → 2.7ms .ctor(JsonSerializer) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+101.2% +2.72ms 0.1% 2.7ms → 5.4ms ValidateEnd(JsonToken) Newtonsoft.Json.JsonReader
new +2.71ms 0.0% → 0.1% 0ms → 2.7ms ParseString(wchar, ReadType) Newtonsoft.Json.JsonTextReader
+197.7% +2.70ms <0.1% → 0.1% 1.4ms → 4.1ms SetPropertyValue(JsonProperty, JsonConverter, JsonContainerContract, JsonProperty, JsonReader, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+39.7% +2.68ms 0.2% 6.7ms → 9.4ms DeserializeInternal(JsonReader, Type) Newtonsoft.Json.JsonSerializer
+2.8% +2.48ms 2.0% → 1.9% 88.2ms → 90.7ms ReadNumberValue(ReadType) Newtonsoft.Json.JsonTextReader
+7.8% +1.67ms 0.5% 21.5ms → 23.1ms GetValue(Object) Newtonsoft.Json.Serialization.ExpressionValueProvider
new +1.48ms 0.0% → <0.1% 0ms → 1.5ms IndexOf(String, wchar) Newtonsoft.Json.Utilities.StringUtils
new +1.42ms 0.0% → <0.1% 0ms → 1.4ms CreateTemporaryCollection() Newtonsoft.Json.Serialization.JsonArrayContract
new +1.39ms 0.0% → <0.1% 0ms → 1.4ms WriteStartArray(JsonWriter, Object, JsonArrayContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
Standard library
Change Delta % Time Function Location
+32.5% +191.97ms 13.3% → 16.5% 591.3ms → 783.3ms CopyTo(Array, int32) System.Collections.Generic.List`1[System.__Canon].System.Collections.ICollection
+398.5% +10.82ms 0.1% → 0.3% 2.7ms → 13.5ms ChkCastInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
+31.6% +8.94ms 0.6% → 0.8% 28.2ms → 37.2ms Memmove(unsigned int8&, unsigned int8&, unsigned int) System.Buffer
+101.3% +6.87ms 0.2% → 0.3% 6.8ms → 13.7ms TryGetValueInternal(Tables<!0, !1>, !0, int32, !1&) System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]
+78.6% +4.23ms 0.1% → 0.2% 5.4ms → 9.6ms RoundNumber(NumberBuffer&, int32, bool) System.Number
+31.3% +4.21ms 0.3% → 0.4% 13.4ms → 17.7ms IndexOf(!0[], !0, int32, int32) System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]
new +4.17ms 0.0% → 0.1% 0ms → 4.2ms IndexOf(!!0[], !!0, int32, int32) System.Array
+44.0% +4.10ms 0.2% → 0.3% 9.3ms → 13.4ms StelemRef(Array, int, Object) System.Runtime.CompilerServices.CastHelpers
new +2.76ms 0.0% → 0.1% 0ms → 2.8ms AddWithResize(!0) System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]
+5.3% +2.21ms 0.9% 41.7ms → 43.9ms FindValue(!0) System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]
new +1.40ms 0.0% → <0.1% 0ms → 1.4ms Write(String) System.IO.StringWriter
new +1.39ms 0.0% → <0.1% 0ms → 1.4ms TryRoundWeedShortest(Span`1<unsigned int8>, int32, unsigned int64, unsigned int64, unsigned int64, unsigned int64, unsigned int64) System.Number+Grisu3
+100.2% +1.36ms <0.1% → 0.1% 1.4ms → 2.7ms NonPackedIndexOfValueType(!!0&, !!0, int32) System.SpanHelpers
new +1.35ms 0.0% → <0.1% 0ms → 1.3ms Resize(!!0[]&, int32) System.Array
new +1.34ms 0.0% → <0.1% 0ms → 1.3ms ParseFormatSpecifier(ReadOnlySpan`1<wchar>, int32&) System.Number
+1.6% +0.15ms 0.2% 9.5ms → 9.6ms IsInstance_Helper(void*, Object) System.Runtime.CompilerServices.CastHelpers
+4.3% +0.06ms <0.1% 1.4ms TryRunDouble(float64, int32, NumberBuffer&) System.Number+Grisu3
+1.2% +0.03ms 0.1% 2.7ms Copy(Array, int32, Array, int32, int32) System.Array
+1.1% +0.01ms <0.1% 1.4ms DigitsToUInt64(unsigned int8*, int32) System.Number
+26.3% +<0.01µs <0.1% <0.1µs AddCustomAttributes(ListBuilder`1<Object>&, RuntimeModule, int32, RuntimeType, bool, ListBuilder`1<Object>) System.Reflection.CustomAttribute
Native
Change Delta % Time Function Location
+20.7% +19.40ms 2.1% → 2.4% 93.6ms → 113.0ms UNMANAGED_CODE_TIME <unknown>

Improvements

Functions with the largest decrease in time spent directly in the function body, excluding callees.

Change Delta % Time Function Location
-30.2% -61.35ms 4.6% → 3.0% 203.0ms → 141.6ms ReadStringIntoBuffer(wchar) Newtonsoft.Json.JsonTextReader
-26.8% -40.30ms 3.4% → 2.3% 150.4ms → 110.1ms ParseProperty() Newtonsoft.Json.JsonTextReader
-42.4% -39.38ms 2.1% → 1.1% 92.9ms → 53.6ms WriteEscapedJavaScriptString(TextWriter, String, wchar, bool, bool[], StringEscapeHandling, IArrayPool`1<wchar>, wchar[]&) Newtonsoft.Json.Utilities.JavaScriptUtils
-13.8% -34.82ms 5.7% → 4.6% 252.4ms → 217.6ms PopulateObject(Object, JsonReader, JsonObjectContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-18.2% -33.64ms 4.2% → 3.2% 185.3ms → 151.7ms SerializeList(JsonWriter, IEnumerable, JsonArrayContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-8.9% -28.91ms 7.3% → 6.3% 325.5ms → 296.6ms SerializeObject(JsonWriter, Object, JsonObjectContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-39.7% -21.30ms 1.2% → 0.7% 53.7ms → 32.4ms ReadStringValue(ReadType) Newtonsoft.Json.JsonTextReader
-26.8% -16.89ms 1.4% → 1.0% 63.1ms → 46.2ms TryParseNumber(!!0*&, !!0*, NumberStyles, NumberBuffer&, NumberFormatInfo) System.Number
-66.4% -13.44ms 0.5% → 0.1% 20.3ms → 6.8ms Append(wchar&, int32) System.Text.StringBuilder
-12.6% -13.42ms 2.4% → 2.0% 106.5ms → 93.0ms ReadAsInt32() Newtonsoft.Json.JsonTextReader
-38.1% -12.82ms 0.8% → 0.4% 33.6ms → 20.8ms Add(Object) System.Collections.Generic.List`1[System.__Canon].System.Collections.IList
-16.9% -12.71ms 1.7% → 1.3% 75.4ms → 62.7ms ParseValue() Newtonsoft.Json.JsonTextReader
-69.4% -9.33ms 0.3% → 0.1% 13.4ms → 4.1ms FormatGeneral(ValueListBuilder`1<!!0>&, NumberBuffer&, int32, NumberFormatInfo, wchar, bool) System.Number
-57.3% -9.26ms 0.4% → 0.1% 16.2ms → 6.9ms MatchValueWithTrailingSeparator(String) Newtonsoft.Json.JsonTextReader
-52.7% -9.22ms 0.4% → 0.2% 17.5ms → 8.3ms EnsureType(JsonReader, Object, CultureInfo, JsonContract, Type) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-10.5% -7.04ms 1.5% → 1.3% 67.2ms → 60.2ms SetToken(JsonToken, Object, bool) Newtonsoft.Json.JsonReader
-9.3% -6.84ms 1.7% → 1.4% 73.9ms → 67.1ms ParseReadNumber(ReadType, wchar, int32) Newtonsoft.Json.JsonTextReader
removed -6.74ms 0.2% → 0.0% 6.7ms → 0ms <GetInstance>g__GetProviderNonNull|58_0(IFormatProvider) System.Globalization.NumberFormatInfo
-44.5% -6.57ms 0.3% → 0.2% 14.8ms → 8.2ms CheckForCircularReference(JsonWriter, Object, JsonProperty, JsonContract, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-32.3% -6.54ms 0.5% → 0.3% 20.2ms → 13.7ms TryDigitGenShortest(DiyFp&, DiyFp&, DiyFp&, Span`1<unsigned int8>, int32&, int32&) System.Number+Grisu3
Ours
Change Delta % Time Function Location
-30.2% -61.35ms 4.6% → 3.0% 203.0ms → 141.6ms ReadStringIntoBuffer(wchar) Newtonsoft.Json.JsonTextReader
-26.8% -40.30ms 3.4% → 2.3% 150.4ms → 110.1ms ParseProperty() Newtonsoft.Json.JsonTextReader
-42.4% -39.38ms 2.1% → 1.1% 92.9ms → 53.6ms WriteEscapedJavaScriptString(TextWriter, String, wchar, bool, bool[], StringEscapeHandling, IArrayPool`1<wchar>, wchar[]&) Newtonsoft.Json.Utilities.JavaScriptUtils
-13.8% -34.82ms 5.7% → 4.6% 252.4ms → 217.6ms PopulateObject(Object, JsonReader, JsonObjectContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-18.2% -33.64ms 4.2% → 3.2% 185.3ms → 151.7ms SerializeList(JsonWriter, IEnumerable, JsonArrayContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-8.9% -28.91ms 7.3% → 6.3% 325.5ms → 296.6ms SerializeObject(JsonWriter, Object, JsonObjectContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-39.7% -21.30ms 1.2% → 0.7% 53.7ms → 32.4ms ReadStringValue(ReadType) Newtonsoft.Json.JsonTextReader
-12.6% -13.42ms 2.4% → 2.0% 106.5ms → 93.0ms ReadAsInt32() Newtonsoft.Json.JsonTextReader
-16.9% -12.71ms 1.7% → 1.3% 75.4ms → 62.7ms ParseValue() Newtonsoft.Json.JsonTextReader
-57.3% -9.26ms 0.4% → 0.1% 16.2ms → 6.9ms MatchValueWithTrailingSeparator(String) Newtonsoft.Json.JsonTextReader
-52.7% -9.22ms 0.4% → 0.2% 17.5ms → 8.3ms EnsureType(JsonReader, Object, CultureInfo, JsonContract, Type) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-10.5% -7.04ms 1.5% → 1.3% 67.2ms → 60.2ms SetToken(JsonToken, Object, bool) Newtonsoft.Json.JsonReader
-9.3% -6.84ms 1.7% → 1.4% 73.9ms → 67.1ms ParseReadNumber(ReadType, wchar, int32) Newtonsoft.Json.JsonTextReader
-44.5% -6.57ms 0.3% → 0.2% 14.8ms → 8.2ms CheckForCircularReference(JsonWriter, Object, JsonProperty, JsonContract, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-43.3% -6.40ms 0.3% → 0.2% 14.8ms → 8.4ms SerializeObjectInternal(Object, Type, JsonSerializer) Newtonsoft.Json.JsonConvert
-56.4% -5.31ms 0.2% → 0.1% 9.4ms → 4.1ms DeserializeObject(String, Type, JsonSerializerSettings) Newtonsoft.Json.JsonConvert
removed -4.07ms 0.1% → 0.0% 4.1ms → 0ms CalculatePropertyDetails(JsonProperty, JsonConverter&, JsonContainerContract, JsonProperty, JsonReader, Object, bool&, Object&, JsonContract&, bool&, bool&) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-100.0% -4.03ms 0.1% → <0.1% 4.0ms → <0.1µs Main() Profile.Program
removed -2.71ms 0.1% → 0.0% 2.7ms → 0ms AutoComplete(JsonToken) Newtonsoft.Json.JsonWriter
removed -2.71ms 0.1% → 0.0% 2.7ms → 0ms AutoCompleteClose(JsonContainerType) Newtonsoft.Json.JsonWriter
Standard library
Change Delta % Time Function Location
-26.8% -16.89ms 1.4% → 1.0% 63.1ms → 46.2ms TryParseNumber(!!0*&, !!0*, NumberStyles, NumberBuffer&, NumberFormatInfo) System.Number
-66.4% -13.44ms 0.5% → 0.1% 20.3ms → 6.8ms Append(wchar&, int32) System.Text.StringBuilder
-38.1% -12.82ms 0.8% → 0.4% 33.6ms → 20.8ms Add(Object) System.Collections.Generic.List`1[System.__Canon].System.Collections.IList
-69.4% -9.33ms 0.3% → 0.1% 13.4ms → 4.1ms FormatGeneral(ValueListBuilder`1<!!0>&, NumberBuffer&, int32, NumberFormatInfo, wchar, bool) System.Number
removed -6.74ms 0.2% → 0.0% 6.7ms → 0ms <GetInstance>g__GetProviderNonNull|58_0(IFormatProvider) System.Globalization.NumberFormatInfo
-32.3% -6.54ms 0.5% → 0.3% 20.2ms → 13.7ms TryDigitGenShortest(DiyFp&, DiyFp&, DiyFp&, Span`1<unsigned int8>, int32&, int32&) System.Number+Grisu3
-22.4% -5.47ms 0.5% → 0.4% 24.4ms → 18.9ms IsInstanceOfInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
-35.6% -5.29ms 0.3% → 0.2% 14.8ms → 9.6ms FormatDouble(ValueListBuilder`1<!!0>&, float64, ReadOnlySpan`1<wchar>, NumberFormatInfo) System.Number
-30.9% -4.95ms 0.4% → 0.2% 16.0ms → 11.1ms FormatDouble(float64, String, NumberFormatInfo) System.Number
removed -2.76ms 0.1% → 0.0% 2.8ms → 0ms IsInstanceOfClass(void*, Object) System.Runtime.CompilerServices.CastHelpers
-66.8% -2.70ms 0.1% → <0.1% 4.0ms → 1.3ms ToString() System.Text.StringBuilder
-39.6% -2.67ms 0.2% → 0.1% 6.7ms → 4.1ms AddWithResize(!0) System.Collections.Generic.List`1[System.__Canon]
-19.1% -2.56ms 0.3% → 0.2% 13.4ms → 10.8ms GetNonRandomizedHashCode() System.String
-38.1% -2.55ms 0.2% → 0.1% 6.7ms → 4.1ms MatchChars(!!0*, !!0*, ReadOnlySpan`1<!!0>) System.Number
-55.5% -1.50ms 0.1% → <0.1% 2.7ms → 1.2ms AppendWithExpansion(wchar&, int32) System.Text.StringBuilder
-33.1% -1.34ms 0.1% 4.0ms → 2.7ms TryParseFloat(ReadOnlySpan`1<!!0>, NumberStyles, NumberFormatInfo, !!1&) System.Number
-88.9% -<0.01µs <0.1% <0.1µs CreateManifestAndDescriptors(Type, String, EventSource, EventManifestOptions) System.Diagnostics.Tracing.EventSource
-94.3% -<0.01µs <0.1% <0.1µs GetOrAdd(!0, Func`2<!0, !1>) System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]
removed -<0.01µs <0.1% → 0.0% <0.1µs → 0ms GetCustomAttributes(MemberInfo, Type, bool) System.Attribute
removed -<0.01µs <0.1% → 0.0% <0.1µs → 0ms GetOrAdd(!0, Func`2<!0, !1>) System.Collections.Concurrent.ConcurrentDictionary`2[Newtonsoft.Json.Utilities.StructMultiKey`2[System.__Canon,System.__Canon],System.__Canon]

Total time

Regressions

Functions with the largest increase in total time spent in the function and all its callees.

Change Delta % Time Function Location
+11.6% +392.42ms 76.0% → 79.6% 3.38s → 3.77s DeserializeInternal(JsonReader, Type) Newtonsoft.Json.JsonSerializer
+11.5% +390.70ms 76.3% → 79.9% 3.39s → 3.78s DeserializeObject(String, Type, JsonSerializerSettings) Newtonsoft.Json.JsonConvert
+11.7% +388.68ms 75.0% → 78.6% 3.33s → 3.72s CreateValueInternal(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.6% +387.33ms 74.9% → 78.5% 3.33s → 3.71s CreateObject(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.5% +386.97ms 75.8% → 79.3% 3.37s → 3.75s Deserialize(JsonReader, Type, bool) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.6% +385.68ms 74.5% → 78.0% 3.31s → 3.69s PopulateObject(Object, JsonReader, JsonObjectContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+6.6% +291.11ms 99.6% → 99.7% 4.43s → 4.72s Main() Profile.Program
+14.3% +273.71ms 43.0% → 46.1% 1.91s → 2.18s ReadForType(JsonContract, bool) Newtonsoft.Json.JsonReader
+32.3% +192.00ms 13.4% → 16.6% 594.0ms → 786.0ms CopyTo(Array, int32) System.Collections.Generic.List`1[System.__Canon].System.Collections.ICollection
+6.0% +122.98ms 46.2% → 45.9% 2.05s → 2.17s CreateList(JsonReader, Type, JsonContract, JsonProperty, Object, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+10.0% +19.87ms 4.5% → 4.6% 198.3ms → 218.1ms DeserializeObject(String, JsonSerializerSettings) Newtonsoft.Json.JsonConvert
+10.0% +19.87ms 4.5% → 4.6% 198.3ms → 218.1ms DeserializeObject(String) Newtonsoft.Json.JsonConvert
+20.7% +19.40ms 2.1% → 2.4% 93.6ms → 113.0ms UNMANAGED_CODE_TIME <unknown>
+20.5% +12.95ms 1.4% → 1.6% 63.1ms → 76.0ms ParsePostValue(bool) Newtonsoft.Json.JsonTextReader
+398.5% +10.82ms 0.1% → 0.3% 2.7ms → 13.5ms ChkCastInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
+3.4% +10.78ms 7.2% → 7.0% 321.4ms → 332.2ms Deserialize(JsonReader, Type) Newtonsoft.Json.JsonSerializer
+11.4% +10.10ms 2.0% → 2.1% 88.7ms → 98.8ms Read() Newtonsoft.Json.JsonTextReader
+701.8% +9.55ms <0.1% → 0.2% 1.4ms → 10.9ms CreateTemporaryCollection() Newtonsoft.Json.Serialization.JsonArrayContract
+31.6% +8.94ms 0.6% → 0.8% 28.2ms → 37.2ms Memmove(unsigned int8&, unsigned int8&, unsigned int) System.Buffer
+62.3% +8.38ms 0.3% → 0.5% 13.4ms → 21.8ms IndexOf(!!0[], !!0, int32, int32) System.Array
Ours
Change Delta % Time Function Location
+11.6% +392.42ms 76.0% → 79.6% 3.38s → 3.77s DeserializeInternal(JsonReader, Type) Newtonsoft.Json.JsonSerializer
+11.5% +390.70ms 76.3% → 79.9% 3.39s → 3.78s DeserializeObject(String, Type, JsonSerializerSettings) Newtonsoft.Json.JsonConvert
+11.7% +388.68ms 75.0% → 78.6% 3.33s → 3.72s CreateValueInternal(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.6% +387.33ms 74.9% → 78.5% 3.33s → 3.71s CreateObject(JsonReader, Type, JsonContract, JsonProperty, JsonContainerContract, JsonProperty, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.5% +386.97ms 75.8% → 79.3% 3.37s → 3.75s Deserialize(JsonReader, Type, bool) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+11.6% +385.68ms 74.5% → 78.0% 3.31s → 3.69s PopulateObject(Object, JsonReader, JsonObjectContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+6.6% +291.11ms 99.6% → 99.7% 4.43s → 4.72s Main() Profile.Program
+14.3% +273.71ms 43.0% → 46.1% 1.91s → 2.18s ReadForType(JsonContract, bool) Newtonsoft.Json.JsonReader
+6.0% +122.98ms 46.2% → 45.9% 2.05s → 2.17s CreateList(JsonReader, Type, JsonContract, JsonProperty, Object, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+10.0% +19.87ms 4.5% → 4.6% 198.3ms → 218.1ms DeserializeObject(String, JsonSerializerSettings) Newtonsoft.Json.JsonConvert
+10.0% +19.87ms 4.5% → 4.6% 198.3ms → 218.1ms DeserializeObject(String) Newtonsoft.Json.JsonConvert
+20.5% +12.95ms 1.4% → 1.6% 63.1ms → 76.0ms ParsePostValue(bool) Newtonsoft.Json.JsonTextReader
+3.4% +10.78ms 7.2% → 7.0% 321.4ms → 332.2ms Deserialize(JsonReader, Type) Newtonsoft.Json.JsonSerializer
+11.4% +10.10ms 2.0% → 2.1% 88.7ms → 98.8ms Read() Newtonsoft.Json.JsonTextReader
+701.8% +9.55ms <0.1% → 0.2% 1.4ms → 10.9ms CreateTemporaryCollection() Newtonsoft.Json.Serialization.JsonArrayContract
+78.9% +7.46ms 0.2% → 0.4% 9.4ms → 16.9ms CreateNewList(JsonReader, JsonArrayContract, bool&) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
+26.0% +7.31ms 0.6% → 0.7% 28.1ms → 35.4ms ParseReadString(wchar, ReadType) Newtonsoft.Json.JsonTextReader
+508.5% +6.91ms <0.1% → 0.2% 1.4ms → 8.3ms Get(wchar[], int32, int32) Newtonsoft.Json.DefaultJsonNameTable
+69.4% +5.60ms 0.2% → 0.3% 8.1ms → 13.7ms SetStateBasedOnCurrent() Newtonsoft.Json.JsonReader
+204.5% +5.54ms 0.1% → 0.2% 2.7ms → 8.2ms ReadAndAssert() Newtonsoft.Json.JsonReader
Standard library
Change Delta % Time Function Location
+32.3% +192.00ms 13.4% → 16.6% 594.0ms → 786.0ms CopyTo(Array, int32) System.Collections.Generic.List`1[System.__Canon].System.Collections.ICollection
+398.5% +10.82ms 0.1% → 0.3% 2.7ms → 13.5ms ChkCastInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
+31.6% +8.94ms 0.6% → 0.8% 28.2ms → 37.2ms Memmove(unsigned int8&, unsigned int8&, unsigned int) System.Buffer
+62.3% +8.38ms 0.3% → 0.5% 13.4ms → 21.8ms IndexOf(!!0[], !!0, int32, int32) System.Array
+101.3% +6.87ms 0.2% → 0.3% 6.8ms → 13.7ms TryGetValueInternal(Tables<!0, !1>, !0, int32, !1&) System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms EnsureDescriptorsInitialized() System.Diagnostics.Tracing.EventSource
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms DoCommand(EventCommandEventArgs) System.Diagnostics.Tracing.EventSource
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms Initialize(Guid, String, String[]) System.Diagnostics.Tracing.EventSource
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms .ctor() System.Diagnostics.Tracing.NativeRuntimeEventSource
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms .cctor() System.Diagnostics.Tracing.NativeRuntimeEventSource
+46.1% +4.35ms 0.2% → 0.3% 9.4ms → 13.8ms StartAssemblyLoad(Guid&, Guid&) System.Runtime.Loader.AssemblyLoadContext
+18.9% +4.32ms 0.5% → 0.6% 22.8ms → 27.1ms GetOrAdd(!0, Func`2<!0, !1>) System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]
+78.6% +4.23ms 0.1% → 0.2% 5.4ms → 9.6ms RoundNumber(NumberBuffer&, int32, bool) System.Number
+31.3% +4.21ms 0.3% → 0.4% 13.4ms → 17.7ms IndexOf(!0[], !0, int32, int32) System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]
+44.0% +4.10ms 0.2% → 0.3% 9.3ms → 13.4ms StelemRef(Array, int, Object) System.Runtime.CompilerServices.CastHelpers
new +4.09ms 0.0% → 0.1% 0ms → 4.1ms CreateDelegate(Type, Object) System.Reflection.Emit.DynamicMethod
new +2.76ms 0.0% → 0.1% 0ms → 2.8ms AddWithResize(!0) System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]
new +2.74ms 0.0% → 0.1% 0ms → 2.7ms DefineEventHandle(unsigned int32, String, int64, unsigned int32, unsigned int32, unsigned int8*, unsigned int32) System.Diagnostics.Tracing.EventPipeEventProvider
new +2.74ms 0.0% → 0.1% 0ms → 2.7ms DefineEventPipeEvents() System.Diagnostics.Tracing.EventSource
new +2.72ms 0.0% → 0.1% 0ms → 2.7ms TryGetSingle(IEnumerable`1<!!0>, Func`2<!!0, bool>, bool&) System.Linq.Enumerable
Native
Change Delta % Time Function Location
+20.7% +19.40ms 2.1% → 2.4% 93.6ms → 113.0ms UNMANAGED_CODE_TIME <unknown>

Improvements

Functions with the largest decrease in total time spent in the function and all its callees.

Change Delta % Time Function Location
-10.4% -99.72ms 21.6% → 18.2% 962.7ms → 863.0ms SerializeObject(JsonWriter, Object, JsonObjectContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-10.3% -99.71ms 21.7% → 18.2% 964.0ms → 864.3ms SerializeValue(JsonWriter, Object, JsonContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-9.3% -94.55ms 22.9% → 19.5% 1.02s → 925.9ms SerializeObjectInternal(Object, Type, JsonSerializer) Newtonsoft.Json.JsonConvert
-9.4% -92.67ms 22.3% → 18.9% 989.6ms → 896.9ms Serialize(JsonWriter, Object, Type) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-9.3% -92.65ms 22.3% → 19.0% 992.2ms → 899.6ms SerializeInternal(JsonWriter, Object, Type) Newtonsoft.Json.JsonSerializer
-12.0% -89.21ms 16.7% → 13.8% 742.1ms → 652.9ms SerializeList(JsonWriter, IEnumerable, JsonArrayContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-30.7% -62.67ms 4.6% → 3.0% 204.3ms → 141.6ms ReadStringIntoBuffer(wchar) Newtonsoft.Json.JsonTextReader
-24.5% -62.34ms 5.7% → 4.0% 254.1ms → 191.7ms WriteValue(JsonWriter, PrimitiveTypeCode, Object) Newtonsoft.Json.JsonWriter
-22.9% -59.97ms 5.9% → 4.3% 261.9ms → 201.9ms ParseProperty() Newtonsoft.Json.JsonTextReader
-21.1% -59.69ms 6.4% → 4.7% 283.4ms → 223.7ms ParseObject() Newtonsoft.Json.JsonTextReader
-43.4% -43.25ms 2.2% → 1.2% 99.7ms → 56.4ms WriteEscapedJavaScriptString(TextWriter, String, wchar, bool, bool[], StringEscapeHandling, IArrayPool`1<wchar>, wchar[]&) Newtonsoft.Json.Utilities.JavaScriptUtils
-18.9% -42.41ms 5.0% → 3.8% 224.3ms → 181.9ms ReadStringValue(ReadType) Newtonsoft.Json.JsonTextReader
-25.2% -32.19ms 2.9% → 2.0% 128.0ms → 95.8ms ParseValue() Newtonsoft.Json.JsonTextReader
-17.9% -30.01ms 3.8% → 2.9% 167.7ms → 137.7ms ParseReadNumber(ReadType, wchar, int32) Newtonsoft.Json.JsonTextReader
-10.2% -26.17ms 5.8% → 4.9% 257.3ms → 231.1ms ReadNumberValue(ReadType) Newtonsoft.Json.JsonTextReader
-26.6% -20.70ms 1.7% → 1.2% 77.8ms → 57.1ms TryParseFloat(ReadOnlySpan`1<!!0>, NumberStyles, NumberFormatInfo, !!1&) System.Number
-27.6% -20.41ms 1.7% → 1.1% 74.0ms → 53.6ms FormatDouble(float64, String, NumberFormatInfo) System.Number
-27.9% -19.45ms 1.6% → 1.1% 69.8ms → 50.3ms TryParseNumber(!!0*&, !!0*, NumberStyles, NumberBuffer&, NumberFormatInfo) System.Number
-18.7% -18.67ms 2.2% → 1.7% 99.6ms → 80.9ms WriteValue(float64) Newtonsoft.Json.JsonTextWriter
-9.4% -16.34ms 3.9% → 3.3% 174.5ms → 158.2ms SetPropertyValue(JsonProperty, JsonConverter, JsonContainerContract, JsonProperty, JsonReader, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
Ours
Change Delta % Time Function Location
-10.4% -99.72ms 21.6% → 18.2% 962.7ms → 863.0ms SerializeObject(JsonWriter, Object, JsonObjectContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-10.3% -99.71ms 21.7% → 18.2% 964.0ms → 864.3ms SerializeValue(JsonWriter, Object, JsonContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-9.3% -94.55ms 22.9% → 19.5% 1.02s → 925.9ms SerializeObjectInternal(Object, Type, JsonSerializer) Newtonsoft.Json.JsonConvert
-9.4% -92.67ms 22.3% → 18.9% 989.6ms → 896.9ms Serialize(JsonWriter, Object, Type) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-9.3% -92.65ms 22.3% → 19.0% 992.2ms → 899.6ms SerializeInternal(JsonWriter, Object, Type) Newtonsoft.Json.JsonSerializer
-12.0% -89.21ms 16.7% → 13.8% 742.1ms → 652.9ms SerializeList(JsonWriter, IEnumerable, JsonArrayContract, JsonProperty, JsonContainerContract, JsonProperty) Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
-30.7% -62.67ms 4.6% → 3.0% 204.3ms → 141.6ms ReadStringIntoBuffer(wchar) Newtonsoft.Json.JsonTextReader
-24.5% -62.34ms 5.7% → 4.0% 254.1ms → 191.7ms WriteValue(JsonWriter, PrimitiveTypeCode, Object) Newtonsoft.Json.JsonWriter
-22.9% -59.97ms 5.9% → 4.3% 261.9ms → 201.9ms ParseProperty() Newtonsoft.Json.JsonTextReader
-21.1% -59.69ms 6.4% → 4.7% 283.4ms → 223.7ms ParseObject() Newtonsoft.Json.JsonTextReader
-43.4% -43.25ms 2.2% → 1.2% 99.7ms → 56.4ms WriteEscapedJavaScriptString(TextWriter, String, wchar, bool, bool[], StringEscapeHandling, IArrayPool`1<wchar>, wchar[]&) Newtonsoft.Json.Utilities.JavaScriptUtils
-18.9% -42.41ms 5.0% → 3.8% 224.3ms → 181.9ms ReadStringValue(ReadType) Newtonsoft.Json.JsonTextReader
-25.2% -32.19ms 2.9% → 2.0% 128.0ms → 95.8ms ParseValue() Newtonsoft.Json.JsonTextReader
-17.9% -30.01ms 3.8% → 2.9% 167.7ms → 137.7ms ParseReadNumber(ReadType, wchar, int32) Newtonsoft.Json.JsonTextReader
-10.2% -26.17ms 5.8% → 4.9% 257.3ms → 231.1ms ReadNumberValue(ReadType) Newtonsoft.Json.JsonTextReader
-18.7% -18.67ms 2.2% → 1.7% 99.6ms → 80.9ms WriteValue(float64) Newtonsoft.Json.JsonTextWriter
-9.4% -16.34ms 3.9% → 3.3% 174.5ms → 158.2ms SetPropertyValue(JsonProperty, JsonConverter, JsonContainerContract, JsonProperty, JsonReader, Object) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-0.8% -13.99ms 38.6% → 35.9% 1.71s → 1.70s PopulateList(IList, JsonReader, JsonArrayContract, JsonProperty, String) Newtonsoft.Json.Serialization.JsonSerializerInternalReader
-12.3% -13.39ms 2.5% → 2.0% 109.1ms → 95.7ms ReadAsInt32() Newtonsoft.Json.JsonTextReader
-38.5% -11.92ms 0.7% → 0.4% 30.9ms → 19.0ms WriteNull() Newtonsoft.Json.JsonTextWriter
Standard library
Change Delta % Time Function Location
-26.6% -20.70ms 1.7% → 1.2% 77.8ms → 57.1ms TryParseFloat(ReadOnlySpan`1<!!0>, NumberStyles, NumberFormatInfo, !!1&) System.Number
-27.6% -20.41ms 1.7% → 1.1% 74.0ms → 53.6ms FormatDouble(float64, String, NumberFormatInfo) System.Number
-27.9% -19.45ms 1.6% → 1.1% 69.8ms → 50.3ms TryParseNumber(!!0*&, !!0*, NumberStyles, NumberBuffer&, NumberFormatInfo) System.Number
-24.9% -14.11ms 1.3% → 0.9% 56.6ms → 42.5ms FormatDouble(ValueListBuilder`1<!!0>&, float64, ReadOnlySpan`1<wchar>, NumberFormatInfo) System.Number
-66.4% -13.44ms 0.5% → 0.1% 20.3ms → 6.8ms Append(wchar&, int32) System.Text.StringBuilder
-31.6% -12.73ms 0.9% → 0.6% 40.3ms → 27.6ms Add(Object) System.Collections.Generic.List`1[System.__Canon].System.Collections.IList
-69.4% -9.33ms 0.3% → 0.1% 13.4ms → 4.1ms FormatGeneral(ValueListBuilder`1<!!0>&, NumberBuffer&, int32, NumberFormatInfo, wchar, bool) System.Number
removed -6.74ms 0.2% → 0.0% 6.7ms → 0ms <GetInstance>g__GetProviderNonNull|58_0(IFormatProvider) System.Globalization.NumberFormatInfo
-22.4% -5.47ms 0.5% → 0.4% 24.4ms → 18.9ms IsInstanceOfInterface(void*, Object) System.Runtime.CompilerServices.CastHelpers
-25.5% -5.15ms 0.5% → 0.3% 20.2ms → 15.1ms TryDigitGenShortest(DiyFp&, DiyFp&, DiyFp&, Span`1<unsigned int8>, int32&, int32&) System.Number+Grisu3
-23.6% -5.09ms 0.5% → 0.3% 21.6ms → 16.5ms TryRunDouble(float64, int32, NumberBuffer&) System.Number+Grisu3
removed -3.97ms 0.1% → 0.0% 4.0ms → 0ms get_Value() System.Threading.AsyncLocal`1[System.__Canon]
removed -3.97ms 0.1% → 0.0% 4.0ms → 0ms OnStart(String, String, int32, Guid&, Guid&, EventActivityOptions, bool) System.Diagnostics.Tracing.ActivityTracker
-19.5% -3.68ms 0.4% → 0.3% 18.8ms → 15.1ms NumberToString(ValueListBuilder`1<!!0>&, NumberBuffer&, wchar, int32, NumberFormatInfo) System.Number
removed -2.76ms 0.1% → 0.0% 2.8ms → 0ms IsInstanceOfClass(void*, Object) System.Runtime.CompilerServices.CastHelpers
removed -2.69ms 0.1% → 0.0% 2.7ms → 0ms EmitLambdaBody(CompilerScope, bool, CompilationFlags) System.Linq.Expressions.Compiler.LambdaCompiler
removed -2.67ms 0.1% → 0.0% 2.7ms → 0ms .cctor() System.Collections.Generic.NonRandomizedStringEqualityComparer
removed -2.67ms 0.1% → 0.0% 2.7ms → 0ms GetStringComparer(Object) System.Collections.Generic.NonRandomizedStringEqualityComparer
-19.1% -2.56ms 0.3% → 0.2% 13.4ms → 10.8ms GetNonRandomizedHashCode() System.String
-38.1% -2.55ms 0.2% → 0.1% 6.7ms → 4.1ms MatchChars(!!0*, !!0*, ReadOnlySpan`1<!!0>) System.Number