-
Notifications
You must be signed in to change notification settings - Fork 3
Sharing is scaring article #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There are still few snippet and images links to fix |
f313a99
to
3ed2f01
Compare
In the second part I have to explain why https://github.com/openjdk/jdk/blob/84240cc8e01663196cf883efec4c0eb4ea590c27/src/hotspot/share/compiler/compilationPolicy.cpp#L1039-L046 doesn't save the day, will be fun 😊 And this is what copilot think about it
|
I need to quote https://developers.redhat.com/articles/2023/09/29/how-we-solved-hotspot-performance-puzzle as well since it's very relevant |
I think I should add some notes on why the counters kept getting updated even if they pass the thresholds (invocation and back edge counters, really - for the others doesn't make sense to stop collecting) |
I need to link:
with the former actually performing the same exact analysis I made - but with AARCH64 - and reaching the same conclusions (which is great - since it validates them!). |
Here the paper content, publicly accessible: https://ckirsch.github.io/publications/proceedings/MPLR24.pdf#page=117 |
024d79c
to
5c72675
Compare
Here we go @stalep now looking how the site looks like 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces the first draft of the "Sharing is (S)Caring" article on Tiered Compilation impacts and adds a JMH microbenchmark demonstrating MethodData counter contention.
- Adds a new AsciiDoc post covering JVM challenges in containers, tiered compilation, MethodData sharing, NUMA effects, and container implications.
- Introduces
MethodDataSharing.java
, a JMH benchmark to highlight scalability issues in MethodData updates. - Includes sample benchmark results and external resource links.
Reviewed Changes
Copilot reviewed 2 out of 6 changed files in this pull request and generated no comments.
File | Description |
---|---|
content/post/method-data-scalability/index.adoc | Added draft article content with sections on containerized JVM, tiered compilation, telemetry sharing, and performance implications |
content/post/method-data-scalability/MethodDataSharing.java | Added a JMH benchmark class illustrating MethodData counter contention in HotSpot |
Comments suppressed due to low confidence (5)
content/post/method-data-scalability/index.adoc:7
- [nitpick] The 'related' field contains an empty placeholder; consider removing it or populating it with actual related post identifiers to avoid rendering an empty link.
related: ['']
content/post/method-data-scalability/index.adoc:62
- [nitpick] Verify that the AsciiDoc
link:MethodDataSharing.java
reference resolves correctly in your site generator or consider using a full URL or an Asciidoctor include directive if needed.
To demonstrate the scalability issue, we use a micro-benchmark (link:MethodDataSharing.java[this benchmark]) with https://github.com/openjdk/jmh[JMH]. The benchmark focuses on a method with tight loops to highlight the cost of updating `MethodData` counters.
content/post/method-data-scalability/MethodDataSharing.java:18
- The Javadoc comment lists
-XX:TieredStopAtLevel=
without an example value; consider specifying a placeholder or example like-XX:TieredStopAtLevel=3
to clarify the intended usage.
* -XX:TieredStopAtLevel=
content/post/method-data-scalability/MethodDataSharing.java:36
- [nitpick] The method name
foo
is generic; consider renaming it to something more descriptive likecountIterations
orperformLoop
to clarify its purpose in the benchmark.
private static int foo(int count, boolean countAll) {
content/post/method-data-scalability/MethodDataSharing.java:36
- [nitpick] The parameter
countAll
is ambiguous; consider renaming it toenableCounting
or similar to better convey its boolean role.
private static int foo(int count, boolean countAll) {
This is the first draft of the article, which still need to check if the way I created code snippet/links/images/assembly is fine with adoc.
Go at https://github.com/franz1981/redhatperf.github.io/blob/sharing_is_scaring/content/post/method-data-scalability/index.adoc