<i18n dev> RFR: 8263090: Avoid reading volatile fields twice in Locale.getDefault(Category)
    Claes Redestad 
    redestad at openjdk.java.net
       
    Fri Mar  5 16:05:57 UTC 2021
    
    
  
On Fri, 5 Mar 2021 14:14:14 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> This patch refactors Locale.getDefault(Category) so that the volatile field holding the Locale is typically only read once. This has a small performance advantage, and might be more robust if initialization is racy.
Results on the provided, simple microbenchmark
Baseline:
Benchmark                         Mode  Cnt   Score   Error  Units
LocaleDefaults.getDefault         avgt    5  11.142 ± 0.084  ns/op
LocaleDefaults.getDefaultDisplay  avgt    5  14.024 ± 0.063  ns/op
LocaleDefaults.getDefaultFormat   avgt    5  14.001 ± 0.072  ns/op
Patch:
Benchmark                         Mode  Cnt   Score   Error  Units
LocaleDefaults.getDefault         avgt    5  11.210 ± 0.057  ns/op
LocaleDefaults.getDefaultDisplay  avgt    5  12.597 ± 0.022  ns/op
LocaleDefaults.getDefaultFormat   avgt    5  12.608 ± 0.049  ns/op
-------------
PR: https://git.openjdk.java.net/jdk/pull/2845
    
    
More information about the i18n-dev
mailing list