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

Fix performance regression introduced in object deserialization #73369

Merged

Conversation

eiriktsarpalis
Copy link
Member

Special cases deserialization for the built-in object converter so that it avoids making expensive ReadStack.Push()/Pop() calls.

Method Job Toolchain Mean Error StdDev Median Min Max Ratio MannWhitney(3%) Gen 0 Gen 1 Allocated Alloc Ratio
DeserializeFromUtf8Bytes Job-QKIRBU main 43.18 us 0.768 us 0.681 us 43.27 us 41.77 us 43.88 us 1.00 Base 4.0761 0.8492 40.36 KB 1.00
DeserializeFromUtf8Bytes Job-XPCOIK PR 35.05 us 0.570 us 0.476 us 35.04 us 33.94 us 35.92 us 0.81 Faster 4.0367 0.9744 39.93 KB 0.99

Fixes performance regression introduced by #65748. Fix #66341.

@eiriktsarpalis eiriktsarpalis added this to the 7.0.0 milestone Aug 4, 2022
@eiriktsarpalis eiriktsarpalis self-assigned this Aug 4, 2022
@ghost
Copy link

ghost commented Aug 4, 2022

Tagging subscribers to this area: @dotnet/area-system-text-json, @gregsdennis
See info in area-owners.md if you want to be subscribed.

Issue Details

Special cases deserialization for the built-in object converter so that it avoids making expensive ReadStack.Push()/Pop() calls.

Method Job Toolchain Mean Error StdDev Median Min Max Ratio MannWhitney(3%) Gen 0 Gen 1 Allocated Alloc Ratio
DeserializeFromUtf8Bytes Job-QKIRBU main 43.18 us 0.768 us 0.681 us 43.27 us 41.77 us 43.88 us 1.00 Base 4.0761 0.8492 40.36 KB 1.00
DeserializeFromUtf8Bytes Job-XPCOIK PR 35.05 us 0.570 us 0.476 us 35.04 us 33.94 us 35.92 us 0.81 Faster 4.0367 0.9744 39.93 KB 0.99

Fixes performance regression introduced by #65748. Fix #66341.

Author: eiriktsarpalis
Assignees: eiriktsarpalis
Labels:

area-System.Text.Json, tenet-performance

Milestone: 7.0.0

@eiriktsarpalis eiriktsarpalis merged commit 3495b69 into dotnet:main Aug 4, 2022
@eiriktsarpalis eiriktsarpalis deleted the objectserialization-regression branch August 4, 2022 21:23
@DrewScoggins
Copy link
Member

DrewScoggins commented Aug 9, 2022

@kunalspathak
Copy link
Member

Improvements on Linux/arm64: dotnet/perf-autofiling-issues#7263

@kunalspathak
Copy link
Member

Windows arm64 improvements dotnet/perf-autofiling-issues#7257

@kunalspathak
Copy link
Member

Linux arm64 improvements dotnet/perf-autofiling-issues#7249

@kunalspathak
Copy link
Member

Improvements": dotnet/perf-autofiling-issues#7284

@ghost ghost locked as resolved and limited conversation to collaborators Oct 14, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Regressions in System.Text.Json.Serialization.Tests.ReadJson<Hashtable>
5 participants