On Tue, 26 Apr 2022 11:35:10 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

>> - use `String.equalsIgnoreCase()` instead of hand-written code relying on 
>> `String.charAt()`
>> - use `String.compareToIgnoreCase()` instead of hand-written code relying on 
>> `String.charAt()`
>> - drop branches that are never executed
>> - drop unused argument from `URI.resolvePath()`
>> - simplify String-related operations
>
> src/java.base/share/classes/java/net/URI.java line 1921:
> 
>> 1919:                     return sn - tn;
>> 1920:                 int val = 0;
>> 1921:                 int n = Math.min(sn, tn);
> 
> Can we drop this change? I wouldn't like `java.net.URI` to gratuitously 
> trigger the loading of the Math class.
> For the rest of the proposed changes, I will need to study them carefully and 
> that may take some time.
> Thanks!

@dfuch I've looked into class loading order and I see this:

...
[0.179s][info][class,init] 38 Initializing 
'java/util/ImmutableCollections$MapN'(no method) (0x000000080013d4b8)
[0.180s][info][class,init] 39 Initializing 'java/lang/StringLatin1' 
(0x0000000800021cb8)
[0.180s][info][class,init] 40 Initializing 'java/lang/Math' (0x0000000800022828)
[0.180s][info][class,init] 41 Initializing 'java/lang/Number'(no method) 
(0x0000000800030080)
[0.180s][info][class,init] 42 Initializing 'java/lang/Float' 
(0x000000080002fe10)
...
[0.234s][info][class,init] 194 Initializing 
'java/lang/module/ModuleDescriptor$Requires$Modifier' (0x00000008001def98)
[0.234s][info][class,init] 195 Initializing 
'java/lang/module/ModuleDescriptor$Provides'(no method) (0x00000008001dd800)
[0.235s][info][class,init] 196 Initializing 'java/net/URI' (0x0000000800142ff0)
[0.236s][info][class,init] 197 Initializing 'java/net/URI$1'(no method) 
(0x00000008001f4368)
[0.236s][info][class,init] 198 Initializing 
'jdk/internal/module/SystemModuleFinders$2'(no method) (0x00000008001d4790)
[0.236s][info][class,init] 199 Initializing 
'jdk/internal/module/SystemModuleFinders$3'(no method) (0x00000008001d50b0)

I.e. `Math` is loaded far before `URI`. Am I missing something?

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

PR: https://git.openjdk.java.net/jdk/pull/8397

Reply via email to