-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve collided exception performance
With the new EH enabled, one exception handling performance test has regressed while all other improved dramatically. I have investigated the test case and it turned out that the regression is due to the way we unwind during second pass when we have an exception that occured in a catch or finally funclet call chain and escaped it. What we do is that we unwind stack until we reach the parent stack frame of the catch / finally and then continue searching for handlers. The NativeAOT that the new EH is based on doesn't unwind stack though, it just moves the current stack frame iterator to the position of the previous exception's stack frame iterator by copying its state. I have applied the same mechanism to the new EH in coreclr and it improved the performance of that test 3-4 times on my machine.
- Loading branch information
Showing
3 changed files
with
68 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters