Review request 8153912: StackFrame::getFileName and StackFrame::getLineNumber not needed
Daniel Fuchs
daniel.fuchs at oracle.com
Mon Mar 13 19:04:19 UTC 2017
Hi Ralph,
I see one issue in your benchmark:
StackWalker walker =
StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
will return a new StackWalker every time it's called.
I'd suggest to create the StackWalker only once and put it in
a private (or package) static.
This will eliminate the creation cost of StackWalker from the
benchmark.
On 13/03/2017 18:52, Ralph Goers wrote:
> The “search” that uses StackWalker probably walks it to the end because
> I had to use test() to determine the StackFrame to return. If you can
> provide a better algorithm to use I’d be happy to retest it. If I=0 is
> the current StackFrame, then that is what we do. Please take a look at
> the stackwalkerSearch method
> at https://github.com/rgoers/stackwalker-vs-Reflection_getCallerClass/blob/master/java9/src/main/java/org/github/arnaudroger/StackWalkerGetCallerClass.java.
I'm curious as to why using reduce() as opposed to findFirst().
Won't reduce() continue to walk the stack even when the searched
frame is found?
best regards,
-- daniel
More information about the core-libs-dev
mailing list