You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Perf] Windows/x64: 2 Regressions on 10/9/2024 1:12:38 AM #108893
@jkotas - it looks like changes to the multicast delegate debugger callbacks incurred a regression. We knew such regressions were possible when we started down this path so I just want to confirm this is still the approach you'd prefer? If so I'll resolve this issue closed by design.
fyi @lateralusX since you took over other similar changes and I think you had some concerns about the perf implications.
This does not look like a real regression to me. The microbenchmark is noisy and it just had a bad streak around Oct 2024. It came back after a few weeks:
I currently walk over current changes + fixing up the rest of the stubs doing some alignment and sharing code that might move existing logic closer to what we have in the past, hopefully that will keep any perf regression at bay. For the delegate case, I see that it was noise and that particular implementation, the IL in this case now checks if a global is not 0 to decide if it should call multicast delegate helper compared to a flag check on a global, so maybe the old way checking produced slightly more efficient code, but I would say if it ends up as different, its a very very small diff, that code also comes in under Delegate_GetMulticastInvokeSlow, so we are already on the slow path in this case. Don't see other changes in that PR that is in play when debugger is not attached.
Activity
DrewScoggins commentedon Oct 15, 2024
Related to #108414.
dotnet-policy-service commentedon Oct 17, 2024
Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.
noahfalk commentedon Aug 6, 2025
@jkotas - it looks like changes to the multicast delegate debugger callbacks incurred a regression. We knew such regressions were possible when we started down this path so I just want to confirm this is still the approach you'd prefer? If so I'll resolve this issue closed by design.
fyi @lateralusX since you took over other similar changes and I think you had some concerns about the perf implications.
jkotas commentedon Aug 7, 2025
This does not look like a real regression to me. The microbenchmark is noisy and it just had a bad streak around Oct 2024. It came back after a few weeks:
lateralusX commentedon Aug 7, 2025
I currently walk over current changes + fixing up the rest of the stubs doing some alignment and sharing code that might move existing logic closer to what we have in the past, hopefully that will keep any perf regression at bay. For the delegate case, I see that it was noise and that particular implementation, the IL in this case now checks if a global is not 0 to decide if it should call multicast delegate helper compared to a flag check on a global, so maybe the old way checking produced slightly more efficient code, but I would say if it ends up as different, its a very very small diff, that code also comes in under Delegate_GetMulticastInvokeSlow, so we are already on the slow path in this case. Don't see other changes in that PR that is in play when debugger is not attached.