I got whole method synchronization working in Shark yesterday, at least for simple cases (non-recursive, uncontended locks). It’s a small thing, but it means that everything that Shark needs in a stack frame is actually in the stack frame. When I get back onto the framewalker stuff I’ll be able to start adding whatever extra stuff I need without worrying about messing myself up for the future.
I’ve been using jar on the HotSpot sources as my testcase, and lately it’s been noticably faster. I did couple of quick timing runs yesterday and even with only 62 methods compiled it is already twice as fast with Shark as without. I’m on the verge of massive success…