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
