Open
Conversation
Member
Author
|
i think I added a section to the wrong PR. Will fix the test. |
09e40fd to
706d25c
Compare
clusterFor() is called often during startup and flamegraph showed that the regex pattern as bottleneck. -> implement the dynamic part of the regex by hand so that the constant part can be put in a static field.
706d25c to
a212d66
Compare
- avoid loading all (~700) modules into TreeMap - use 0 copy Module#getDependenciesArray for iteration instead of Set - code renovations
- remove reflective JDK module info query code - print standard ISO date/time to avoid date formatter bootstrap misc: - removed a test cases testing ThreadDeath as part of the cleanup
a212d66 to
f6c1df1
Compare
Member
Author
|
delay review requests please. Wrong PR :) cache loading PR has to go in first. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the third PR after #9303 and #9307 which improves various other startup bottlenecks which showed up during startup profiling. With all three applied,
Main#startfinishes in about 2400 ms on my system now. todo: add reference valuesplit into 3 commits:
InstalledFileLocatorImpl: avoid recompiling regex in hot codeclusterFor()is called often during startup and flamegraph showed that the regex pattern as bottleneck.-> implement the dynamic part of the regex by hand so that the constant part can be put in a static field.
NbInstallerhidden pkg and deprecated module computation optimizationsmove string.split(regex) into pattern and out of inner loopreverted, wasn't worth it in this particular caseTreeMapfor the purpose of sorting warning lines which may or may not occurModule#getDependenciesArrayfor iteration instead of copiedSetStartup logger info dump optimization
misc:
ThreadDeathas part of the cleanupbefore:

after:

marked in purple from left to right:
TopLogging#printSystemInfo,ModuleList#findJarByNameandNbInstaller#checkForDeprecations