RFR: 8291641: Optimize StackTraceElement.toString() [v7]

David Schlosnagle duke at openjdk.org
Tue Aug 9 20:26:49 UTC 2022


On Tue, 9 Aug 2022 18:35:05 GMT, Mandy Chung <mchung at openjdk.org> wrote:

>> David Schlosnagle has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 11 additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'origin/master' into ds/StackTraceElement
>>  - Mark StackTraceElement SerialTest for bug 8291641
>>  - Revert "Mark StackTraceElement SerialTest for bug 8291641"
>>    
>>    This reverts commit e7b04faafb026e61829c81c75121e2d3be6644d9.
>>  - Mark StackTraceElement SerialTest for bug 8291641
>>  - Inline max Integer.stringSize
>>  - Estimate length
>>  - Address comments
>>  - Precompute StackTraceElement toString length
>>  - Merge remote-tracking branch 'origin/master' into ds/StackTraceElement
>>  - Optimize StackTraceElement.toString()
>>  - ... and 1 more: https://git.openjdk.org/jdk/compare/de2d083f...c9ae3897
>
> src/java.base/share/classes/java/lang/StackTraceElement.java line 359:
> 
>> 357:     @Override
>> 358:     public String toString() {
>> 359:         int estimatedLength = Objects.requireNonNullElse(classLoaderName, "").length() + 1
> 
> Nit: suggest to refactor this and define a private static `length(String s)` method.

updated

> src/java.base/share/classes/java/lang/StackTraceElement.java line 364:
> 
>> 362:                 + declaringClass.length() + 1
>> 363:                 + methodName.length() + 1
>> 364:                 + Math.max("Unknown Source".length(), Objects.requireNonNullElse(fileName, "").length()) + 1
> 
> I suggest to define a static variable = "Unknown Source" be used here and line 387.   Same for "Native Method" which can also be accounted for.

pulled out to private static final fields

-------------

PR: https://git.openjdk.org/jdk/pull/9665


More information about the core-libs-dev mailing list