-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Reduced .NET8 R2R performance #96242
Copy link
Copy link
Closed
Labels
arch-arm64in-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is mergedos-windowstenet-performancePerformance related issuePerformance related issue
Milestone
Metadata
Metadata
Assignees
Labels
arch-arm64in-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is mergedos-windowstenet-performancePerformance related issuePerformance related issue
Type
Fields
Give feedbackNo fields configured for issues without a type.
Description
On arm64, using PublishReadyToRun on the attached project; you will get reduced performance using .NET8 (not present in NET7, NET6).
On my machine:
NET6: 10ms
NET8: 650ms
To help you guys get started, we have extracted a minimal reproduce project that triggers the error from a real application if you wonder why the app has no apparent purpose.
Changing from struct to class on Point2D will remove the problem.
Arm64Net8JitError.zip
Reproduction Steps
Start program published with parameter PublishReadyToRun:true and press the one button and get a messagebox with the init time to spot the difference.
Expected behavior
Non regressed performance.
Actual behavior
Really bad performance -> real world applicaton starts 10 times slower. Attached benchmark app is even slower than that.
Regression?
Yes, works in NET6.0, NET7.0
Known Workarounds
Convert Point2D struct to class instead.
Configuration
See description.
Other information
We target imx8MPlus.