Speedup max direct memory estimation via Unsafe#13643
Merged
normanmaurer merged 2 commits intonetty:4.1from Oct 2, 2023
Merged
Speedup max direct memory estimation via Unsafe#13643normanmaurer merged 2 commits intonetty:4.1from
normanmaurer merged 2 commits intonetty:4.1from
Conversation
Contributor
Author
Member
|
@franz1981 honestly I think the bigger advantage is that this will work even if Reflection is not possible |
Contributor
Author
|
Yep, that's indeed the other "good" thing, although i don't feel well using |
Motivation: PlatformDependent::estimateMaxDirectMemory reflectevly allocates MX Beans to detect JVM's arg MaxDirectMemory (often failing to find any, because unconfigured). Modifications: Allow unsafe to find Bits's max memory static field and use it as a fast path to detect the same direct memory limits used by the JVM runtime Result: Faster and less memory hungry (in term of mallocs) startup
43d5641 to
13d827b
Compare
Contributor
|
Thanks for this @franz1981! |
Contributor
Author
|
@normanmaurer private static final Pattern MAX_DIRECT_MEMORY_SIZE_ARG_PATTERN = Pattern.compile(
"\\s*-XX:MaxDirectMemorySize\\s*=\\s*([0-9]+)\\s*([kKmMgG]?)\\s*$"); is not really needed anymore and I can just skip allocating it, in case we have our fast-path satisfied, saving both time and some useless allocation/memory footprint, wdyt? |
Member
|
@franz1981 can you please port to main as well ? |
normanmaurer
pushed a commit
that referenced
this pull request
Oct 11, 2023
Motivation: PlatformDependent::estimateMaxDirectMemory reflectevly allocates MX Beans to detect JVM's arg MaxDirectMemory (often failing to find any, because unconfigured). Modifications: Allow unsafe to find Bits's max memory static field and use it as a fast path to detect the same direct memory limits used by the JVM runtime Result: Faster and less memory hungry (in term of mallocs) startup Porting of #13643
This was referenced Nov 28, 2023
Closed
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.

Motivation:
PlatformDependent::estimateMaxDirectMemory reflectevly allocates MX Beans to detect JVM's arg MaxDirectMemory (often failing to find any, because unconfigured).
Modifications:
Allow unsafe to find Bits's max memory static field and use it as a fast path to detect the same direct memory limits used by the JVM runtime
Result:
Faster and less memory hungry (in term of mallocs) startup