On Dec 1, 2011, at 1:34 AM, Charles Oliver Nutter wrote: > My recent explorations into Stephen B's perf degradation on JRuby have > led me to an unfortunate conclusion: something SwitchPoint-related is > responsible for the remaining slowdown. > > I had bugs I fixed, like the awful PIC-causes-repeat-rebinding issue > or the heavy-class-mutation-never-stabilizes issue, but the last "fix" > I found was to disable SwitchPoint-based call site invalidation > entirely.
The upside of the push based invalidation of SwitchPoint is that the executed code runs quickly but the downside is that invalidation is expensive, possibly requiring a deopt and recompilation. If you suspect that's happening, try running with -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:+PrintCompilation and look for dependency_failed messages where type='call_site_target_value'. Any following make_not_entrant messages are probably caused by the invalidation of the SwitchPoint. tom > > Now I'm not (yet) saying this is a perf issue in SwitchPoint itself. > My problem is that it's very difficult to get any visibility into how > frequently SwitchPoints are being invalidated (though I could > instrument my own code, of course), or more importantly how > drastically those invalidations are affecting performance. Does a > single SwitchPoint invalidation happening repeatedly completely tank > performance across the entire system? Does it require SwitchPoint > invalidation that affects a broader surface area? > > I will continue investigating on my side. I suspect the problem is > that there's just a handful of SwitchPoint locations that are > repeatedly invalidated, but that those invalidations are having a > drastic global impact. I'm not yet sure how to work around such a > situation, where one bad apple is spoiling the whole bunch... > > - Charlie > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev