Hi,
On 04/05/2016 01:45 AM, Brent Christian wrote:
Hi,
I'd like to check in some footprint and code reduction changes to the
java.lang.StackWalker implementation.
Webrev:
http://cr.openjdk.java.net/~bchristi/8153123/webrev.00/
this looks really good to me.
It seems the new implementation of StackFrameInfo::toStackTraceElement
reads the volatile field ste twice on the fast path, though, so perhaps
consider something like this:
+ StackTraceElement s = ste; + if (s == null) {
+ synchronized(this) { + s = ste; + if (s == null) {
+ s = new StackTraceElement();
+ toStackTraceElement0(s);
+ ste = s;
+ }
+ }
+ }
+ return s;
Thanks!
/Claes
Bug:
https://bugs.openjdk.java.net/browse/JDK-8153123
A summary of the changes:
* remove the "stackwalk.newThrowable" system property and
"MemberNameInStackFrame" VM flag, originally left in to aid benchmarking
* Streamline StackFrameInfo fields
* Refactor/streamline StackStreamFactory (no more separate
classes[]/StackFrame[] arrays, remove unneeded (for now)
StackStreamFactory.StackTrace class)
Given the hotspot changes, I plan to push this through hs-rt.
Thanks,
-Brent