RFR 8165372 : StackWalker performance regression following JDK-8147039

Coleen Phillimore coleen.phillimore at oracle.com
Mon Sep 19 19:46:01 UTC 2016


http://cr.openjdk.java.net/~bchristi/8165372/webrev.00/src/share/vm/prims/stackwalk.cpp.udiff.html

+ if (need_method_info(mode) == false && get_caller_class(mode) &&


Change to

+ if (!need_method_info(mode) && get_caller_class(mode) &&


And the two instances of this:

+ Handle stackFrame(frames_array->obj_at(index));

Change to

+ Handle stackFrame(THREAD, frames_array->obj_at(index));


Other than these minor comments, I think this looks really good.

thanks!
Coleen


On 9/19/16 3:35 PM, Brent Christian wrote:
> Hi,
>
> Please review my fix for 8165372 : "StackWalker performance regression 
> following JDK-8147039"
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8165372
> Webrev: http://cr.openjdk.java.net/~bchristi/8165372/webrev.00/
>
> 8147039 reimplemented stack walking using javaVFrames in place of 
> vframeStream, in order to give correct results for the experimental 
> LiveStackFrame feature.  However, this also resulted in a significant 
> StackWalker performance regression (25-60%, depending on specific 
> operation and stack depth).
>
> This fix includes stack walking implemented both ways, encapsulated 
> within C++ classes.  JavaFrameStream provides the speed we had before 
> for most use cases, while LiveFrameStream provides correct results 
> when using LiveStackFrames.
>
> Performance is much improved, back within 5% or so of pre-8147039 
> levels, based on my measurements.
>
> Thanks,
> -Brent
>
> 1. http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/6174ad93770c
>



More information about the hotspot-dev mailing list