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

Reply via email to