[
https://issues.apache.org/jira/browse/GEODE-6424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16770715#comment-16770715
]
Jacob S. Barrett edited comment on GEODE-6424 at 2/18/19 1:23 AM:
------------------------------------------------------------------
!image.png|height=400!
This chart shows a comparison between the old {{Atomic50StatisticsImpl}} and a
new implementation based on {{LongAdder}}. Benchmark was executed on a Intel
Core i9 2.9 GHz w 6 cores and Hyperthreading (12 total hardware threads).
{noformat}
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: Intel Core i9
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Memory: 32 GB
{noformat}
was (Author: jbarrett):
!image.png!
This chart shows a comparison between the old {{Atomic50StatisticsImpl}} and a
new implementation based on {{LongAdder}}. Benchmark was executed on a Intel
Core i9 2.9 GHz w 6 cores and Hyperthreading (12 total hardware threads).
{noformat}
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: Intel Core i9
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Memory: 32 GB
{noformat}
> Reduce overhead of stats storage
> --------------------------------
>
> Key: GEODE-6424
> URL: https://issues.apache.org/jira/browse/GEODE-6424
> Project: Geode
> Issue Type: Improvement
> Components: statistics
> Reporter: Jacob S. Barrett
> Priority: Major
> Attachments: image.png
>
>
> The current stats storage system is based on a very old and complicated
> implementation of a thread striped counter. See {{Atomic50StatisticsImpl}}.
> This implementation makes now incorrect assumptions about certain performance
> characteristics of volatile memory access. Combined with it's complexity it
> is causing large variances in performance numbers on the function benchmarks.
> Runs can differ by as much as 45%.
> Replace this implementation with one based on the Java 8 {{LongAdder}}, which
> is a modern and JDK maintained implementation of a striped counter. Also use
> {{DoubleAdder}} to support doubles, which the {{Atomic50StatisticsImpl}} does
> not support.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)