-
Notifications
You must be signed in to change notification settings - Fork 273
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
initial cut at guarded devirt perf tests #174
Conversation
src/benchmarks/micro/coreclr/Devirtualization/GuardedThreeClassVirtual.cs
Outdated
Show resolved
Hide resolved
src/benchmarks/micro/coreclr/Devirtualization/GuardedTwoClassVirtual.cs
Outdated
Show resolved
Hide resolved
src/benchmarks/micro/coreclr/Devirtualization/GuardedTwoClassVirtual.cs
Outdated
Show resolved
Hide resolved
This more or less reproduces the first couple of graphs in the guarded devirtualization writeup, which I measured in a more ad-hoc fashion. Perf for the "really bad guess" case
I have similar tests for interface calls that I'll work on converting over. Measuring interface call impact is a bit trickier because VSD has some residual state and so we can't use the same call site for different test inputs. |
Added the interface versions. Simpler than I thought as BDN seems to run each case in its own process so there is no VSD carryover (one can tell by looking at the no GDV two class results, they will not be symmetric about p=0.5 if VSD is carrying state over from the previous input array). Interface results:
|
@adamsitnik think these are ready |
some renaming and pedantic refactor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for contributing new benchmarks to the perf repo!
I can see these are getting compiled but they don't show up in listing or filtering.
So not sure what I'm doing wrong.
@adamsitnik can you take a look?