On Tue, 23 Jun 2026 13:16:40 GMT, Aleksey Shipilev <[email protected]> wrote:
> While following up on concurrent marking performance, I noticed that we > stopped / failed to inline some of the hot methods in marking loop. We need > to rework this. > > This PR replaces the build-time "bump" for inlining heuristics into explicit > inlining hints across the hot path. I have eyeballed the profiles on typical > workloads and the inlining makes sense now. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `hotspot_gc_shenandoah` > - [x] Ad-hoc marking performance tests > - [ ] Regular testing pipelines > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). With a stress test for marking, I have got about +7% faster mark times. # Baseline [30.748s][info][gc,stats] Concurrent Marking = 23.323 s (a = 315181 us) (n = 74) (lvls, us = 37109, 322266, 335938, 341797, 381256) [30.748s][info][gc,stats] CM: Work = 186.237 s (a = 2516712 us) (n = 74) (lvls, us = 294922, 2578125, 2695312, 2714844, 3043188) [30.748s][info][gc,stats] Flush SATB = 0.005 s (a = 73 us) (n = 74) (lvls, us = 44, 69, 72, 75, 155) # Patched [30.761s][info][gc,stats] Concurrent Marking = 22.860 s (a = 293082 us) (n = 78) (lvls, us = 28516, 302734, 310547, 312500, 358537) [30.761s][info][gc,stats] CM: Work = 182.501 s (a = 2339750 us) (n = 78) (lvls, us = 222656, 2421875, 2480469, 2500000, 2856669) [30.761s][info][gc,stats] Flush SATB = 0.006 s (a = 72 us) (n = 78) (lvls, us = 28, 67, 69, 78, 95) ------------- PR Comment: https://git.openjdk.org/jdk/pull/31634#issuecomment-4779642741
