RFR 8150778: Reduce Throwable.getStackTrace() calls to the JVM
Aleksey Shipilev
aleksey.shipilev at oracle.com
Wed Mar 2 20:21:31 UTC 2016
On 03/02/2016 10:57 PM, Coleen Phillimore wrote:
> On 3/2/16 1:58 PM, Aleksey Shipilev wrote:
>> Is there an underlying reason why we can't return the pre-filled
>> StackTraceElements[] array from the JVM_GetStackTraceElements to begin
>> with? This will avoid leaking StackTraceElement constructor into
>> standard library, *and* allows to make StackTraceElement fields final.
>> Taking stuff back from the standard library is hard, if not impossible,
>> so we better expose as little as possible.
>
> We measured that it's faster to allocate the StackTraceElement array
> in Java and it seems cleaner to the Java guys. It came from similar
> code we've been prototyping for StackFrameInfo.
OK, it's not perfectly clean from implementation standpoint, but this
RFE might not be the best opportunity to polish that. At least make
StackTraceElement constructor private (better), or package-private
(acceptable), and then we are good to go.
Also, I think you can drop this line:
836 int depth = getStackTraceDepth();
Thanks,
-Aleksey
More information about the core-libs-dev
mailing list