dmsolr commented on issue #3064: To improve DataCarrier 
URL: https://github.com/apache/skywalking/issues/3064#issuecomment-511273975
 
 
   The max capacity is 40k with default initial capacity. It showed that the 
ArrayList seem like better in ops. And the reused ListedList is better at GC.
   
   ```
   Benchmark                                                                   
Mode  Cnt           Score          Error   Units
       LinkedArrayBenchmark.testArray                                           
  thrpt    5           4.226 ±        0.141   ops/s
       LinkedArrayBenchmark.testArray:·gc.alloc.rate                            
  thrpt    5        3688.588 ±      123.565  MB/sec
       LinkedArrayBenchmark.testArray:·gc.alloc.rate.norm                       
  thrpt    5   960569530.094 ±        0.412    B/op
       LinkedArrayBenchmark.testArray:·gc.churn.PS_Eden_Space                   
  thrpt    5        3689.467 ±      122.160  MB/sec
       LinkedArrayBenchmark.testArray:·gc.churn.PS_Eden_Space.norm              
  thrpt    5   960800434.530 ±  6919898.689    B/op
       LinkedArrayBenchmark.testArray:·gc.churn.PS_Survivor_Space               
  thrpt    5           2.414 ±        0.083  MB/sec
       LinkedArrayBenchmark.testArray:·gc.churn.PS_Survivor_Space.norm          
  thrpt    5      628721.758 ±    27005.282    B/op
       LinkedArrayBenchmark.testArray:·gc.count                                 
  thrpt    5        1171.000                 counts
       LinkedArrayBenchmark.testArray:·gc.time                                  
  thrpt    5        3409.000                     ms
       LinkedArrayBenchmark.testLinked                                          
  thrpt    5           2.530 ±        0.199   ops/s
       LinkedArrayBenchmark.testLinked:·gc.alloc.rate                           
  thrpt    5        4415.469 ±      343.995  MB/sec
       LinkedArrayBenchmark.testLinked:·gc.alloc.rate.norm                      
  thrpt    5  1920000016.994 ±        2.142    B/op
       LinkedArrayBenchmark.testLinked:·gc.churn.PS_Eden_Space                  
  thrpt    5        4413.416 ±      363.896  MB/sec
       LinkedArrayBenchmark.testLinked:·gc.churn.PS_Eden_Space.norm             
  thrpt    5  1919071368.455 ± 13928128.077    B/op
       LinkedArrayBenchmark.testLinked:·gc.churn.PS_Survivor_Space              
  thrpt    5          10.812 ±        2.017  MB/sec
       LinkedArrayBenchmark.testLinked:·gc.churn.PS_Survivor_Space.norm         
  thrpt    5     4700483.899 ±   672304.059    B/op
       LinkedArrayBenchmark.testLinked:·gc.count                                
  thrpt    5        1427.000                 counts
       LinkedArrayBenchmark.testLinked:·gc.time                                 
  thrpt    5        4876.000                     ms
       LinkedArrayBenchmark.testReusedLinked                                    
  thrpt    5           1.518 ±        0.097   ops/s
       LinkedArrayBenchmark.testReusedLinked:·gc.alloc.rate                     
  thrpt    5        2651.785 ±      172.025  MB/sec
       LinkedArrayBenchmark.testReusedLinked:·gc.alloc.rate.norm                
  thrpt    5  1920000059.360 ±        3.100    B/op
       LinkedArrayBenchmark.testReusedLinked:·gc.churn.PS_Eden_Space            
  thrpt    5        2650.719 ±      169.556  MB/sec
       LinkedArrayBenchmark.testReusedLinked:·gc.churn.PS_Eden_Space.norm       
  thrpt    5  1919234867.000 ±  1870669.782    B/op
       LinkedArrayBenchmark.testReusedLinked:·gc.churn.PS_Survivor_Space        
  thrpt    5           6.504 ±        0.385  MB/sec
       LinkedArrayBenchmark.testReusedLinked:·gc.churn.PS_Survivor_Space.norm   
  thrpt    5     4709853.867 ±   261297.898    B/op
       LinkedArrayBenchmark.testReusedLinked:·gc.count                          
  thrpt    5         874.000                 counts
       LinkedArrayBenchmark.testReusedLinked:·gc.time                           
  thrpt    5        3068.000                     ms
   ```
   
   This part tests default capacity and the max size of List is 1000.
   
   ```
   Benchmark                                                                   
Mode  Cnt           Score          Error   Units
       LinkedArrayBenchmark.testArrayCap1000                                    
  thrpt    5      178893.020 ±     4902.711   ops/s
       LinkedArrayBenchmark.testArrayCap1000:·gc.alloc.rate                     
  thrpt    5        6429.991 ±      176.611  MB/sec
       LinkedArrayBenchmark.testArrayCap1000:·gc.alloc.rate.norm                
  thrpt    5       39576.000 ±        0.001    B/op
       LinkedArrayBenchmark.testArrayCap1000:·gc.churn.PS_Eden_Space            
  thrpt    5        6430.657 ±      167.713  MB/sec
       LinkedArrayBenchmark.testArrayCap1000:·gc.churn.PS_Eden_Space.norm       
  thrpt    5       39580.205 ±      202.041    B/op
       LinkedArrayBenchmark.testArrayCap1000:·gc.churn.PS_Survivor_Space        
  thrpt    5           0.918 ±        0.089  MB/sec
       LinkedArrayBenchmark.testArrayCap1000:·gc.churn.PS_Survivor_Space.norm   
  thrpt    5           5.652 ±        0.402    B/op
       LinkedArrayBenchmark.testArrayCap1000:·gc.count                          
  thrpt    5        1992.000                 counts
       LinkedArrayBenchmark.testArrayCap1000:·gc.time                           
  thrpt    5        1454.000                     ms
       LinkedArrayBenchmark.testLinkedCap1000                                   
  thrpt    5      101902.597 ±     3000.098   ops/s
       LinkedArrayBenchmark.testLinkedCap1000:·gc.alloc.rate                    
  thrpt    5        4548.896 ±      133.477  MB/sec
       LinkedArrayBenchmark.testLinkedCap1000:·gc.alloc.rate.norm               
  thrpt    5       49152.000 ±        0.001    B/op
       LinkedArrayBenchmark.testLinkedCap1000:·gc.churn.PS_Eden_Space           
  thrpt    5        4545.109 ±      128.194  MB/sec
       LinkedArrayBenchmark.testLinkedCap1000:·gc.churn.PS_Eden_Space.norm      
  thrpt    5       49111.248 ±      383.670    B/op
       LinkedArrayBenchmark.testLinkedCap1000:·gc.churn.PS_Survivor_Space       
  thrpt    5           0.984 ±        0.143  MB/sec
       LinkedArrayBenchmark.testLinkedCap1000:·gc.churn.PS_Survivor_Space.norm  
  thrpt    5          10.628 ±        1.256    B/op
       LinkedArrayBenchmark.testLinkedCap1000:·gc.count                         
  thrpt    5        1409.000                 counts
       LinkedArrayBenchmark.testLinkedCap1000:·gc.time                          
  thrpt    5        1026.000                     ms
   ```
   
   
   This part tests default capacity and the max size of List is 40000.
   
   ```
   Benchmark                                                                   
Mode  Cnt           Score          Error   Units
        LinkedArrayBenchmark.testArrayCap40000                                  
   thrpt    5        4815.608 ±      131.042   ops/s
       LinkedArrayBenchmark.testArrayCap40000:·gc.alloc.rate                    
  thrpt    5        6689.635 ±      182.186  MB/sec
       LinkedArrayBenchmark.testArrayCap40000:·gc.alloc.rate.norm               
  thrpt    5     1529496.009 ±        0.001    B/op
       LinkedArrayBenchmark.testArrayCap40000:·gc.churn.PS_Eden_Space           
  thrpt    5        6710.007 ±      171.817  MB/sec
       LinkedArrayBenchmark.testArrayCap40000:·gc.churn.PS_Eden_Space.norm      
  thrpt    5     1534157.793 ±     4928.618    B/op
       LinkedArrayBenchmark.testArrayCap40000:·gc.churn.PS_Survivor_Space       
  thrpt    5           8.790 ±        2.575  MB/sec
       LinkedArrayBenchmark.testArrayCap40000:·gc.churn.PS_Survivor_Space.norm  
  thrpt    5        2009.990 ±      602.223    B/op
       LinkedArrayBenchmark.testArrayCap40000:·gc.count                         
  thrpt    5        2107.000                 counts
       LinkedArrayBenchmark.testArrayCap40000:·gc.time                          
  thrpt    5        2344.000                     ms
       LinkedArrayBenchmark.testLinkedCap40000                                  
  thrpt    5        2333.108 ±      127.632   ops/s
       LinkedArrayBenchmark.testLinkedCap40000:·gc.alloc.rate                   
  thrpt    5        4068.227 ±      221.587  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.alloc.rate.norm              
  thrpt    5     1920000.019 ±        0.001    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Eden_Space          
  thrpt    5        4067.345 ±      228.880  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Eden_Space.norm     
  thrpt    5     1919573.472 ±     4585.263    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Survivor_Space      
  thrpt    5          10.009 ±        0.305  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Survivor_Space.norm 
  thrpt    5        4724.208 ±      159.694    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.count                        
  thrpt    5        1291.000                 counts
       LinkedArrayBenchmark.testLinkedCap40000:·gc.time                         
  thrpt    5        4500.000                     ms
   ```
   
   
   This part tests different initial capacity. The max length is 40k.
   
   ```
   Benchmark                                                                   
Mode  Cnt           Score          Error   Units
       LinkedArrayBenchmark.testArrayStart1                                     
  thrpt    5           5.261 ±        0.146   ops/s
       LinkedArrayBenchmark.testArrayStart1:·gc.alloc.rate                      
  thrpt    5        4592.112 ±      127.800  MB/sec
       LinkedArrayBenchmark.testArrayStart1:·gc.alloc.rate.norm                 
  thrpt    5   960492136.242 ±        1.133    B/op
       LinkedArrayBenchmark.testArrayStart1:·gc.churn.PS_Eden_Space             
  thrpt    5        4592.839 ±      119.206  MB/sec
       LinkedArrayBenchmark.testArrayStart1:·gc.churn.PS_Eden_Space.norm        
  thrpt    5   960646891.934 ±  2116622.955    B/op
       LinkedArrayBenchmark.testArrayStart1:·gc.churn.PS_Survivor_Space         
  thrpt    5           2.905 ±        0.702  MB/sec
       LinkedArrayBenchmark.testArrayStart1:·gc.churn.PS_Survivor_Space.norm    
  thrpt    5      607819.797 ±   159351.447    B/op
       LinkedArrayBenchmark.testArrayStart1:·gc.count                           
  thrpt    5        1455.000                 counts
       LinkedArrayBenchmark.testArrayStart1:·gc.time                            
  thrpt    5        3681.000                     ms
       LinkedArrayBenchmark.testArrayStart8000                                  
  thrpt    5           5.064 ±        0.736   ops/s
       LinkedArrayBenchmark.testArrayStart8000:·gc.alloc.rate                   
  thrpt    5        4420.355 ±      642.394  MB/sec
       LinkedArrayBenchmark.testArrayStart8000:·gc.alloc.rate.norm              
  thrpt    5   960422112.414 ±        1.208    B/op
       LinkedArrayBenchmark.testArrayStart8000:·gc.churn.PS_Eden_Space          
  thrpt    5        4419.366 ±      672.306  MB/sec
       LinkedArrayBenchmark.testArrayStart8000:·gc.churn.PS_Eden_Space.norm     
  thrpt    5   960156844.833 ±  6605602.231    B/op
       LinkedArrayBenchmark.testArrayStart8000:·gc.churn.PS_Survivor_Space      
  thrpt    5           2.647 ±        0.421  MB/sec
       LinkedArrayBenchmark.testArrayStart8000:·gc.churn.PS_Survivor_Space.norm 
  thrpt    5      575147.529 ±    37485.847    B/op
       LinkedArrayBenchmark.testArrayStart8000:·gc.count                        
  thrpt    5        1405.000                 counts
       LinkedArrayBenchmark.testArrayStart8000:·gc.time                         
  thrpt    5        3436.000                     ms
       LinkedArrayBenchmark.testArrayStart40000                                 
  thrpt    5           4.750 ±        1.010   ops/s
       LinkedArrayBenchmark.testArrayStart40000:·gc.alloc.rate                  
  thrpt    5        4144.128 ±      877.022  MB/sec
       LinkedArrayBenchmark.testArrayStart40000:·gc.alloc.rate.norm             
  thrpt    5   960160049.019 ±        1.766    B/op
       LinkedArrayBenchmark.testArrayStart40000:·gc.churn.PS_Eden_Space         
  thrpt    5        4144.070 ±      870.832  MB/sec
       LinkedArrayBenchmark.testArrayStart40000:·gc.churn.PS_Eden_Space.norm    
  thrpt    5   960163090.109 ±  6994322.149    B/op
       LinkedArrayBenchmark.testArrayStart40000:·gc.churn.PS_Survivor_Space     
  thrpt    5           2.105 ±        0.455  MB/sec
       
LinkedArrayBenchmark.testArrayStart40000:·gc.churn.PS_Survivor_Space.norm  
thrpt    5      487636.376 ±    28869.393    B/op
       LinkedArrayBenchmark.testArrayStart40000:·gc.count                       
  thrpt    5        1312.000                 counts
       LinkedArrayBenchmark.testArrayStart40000:·gc.time                        
  thrpt    5        6420.000                     ms
       LinkedArrayBenchmark.testLinkedCap40000                                  
  thrpt    5        2333.108 ±      127.632   ops/s
       LinkedArrayBenchmark.testLinkedCap40000:·gc.alloc.rate                   
  thrpt    5        4068.227 ±      221.587  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.alloc.rate.norm              
  thrpt    5     1920000.019 ±        0.001    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Eden_Space          
  thrpt    5        4067.345 ±      228.880  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Eden_Space.norm     
  thrpt    5     1919573.472 ±     4585.263    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Survivor_Space      
  thrpt    5          10.009 ±        0.305  MB/sec
       LinkedArrayBenchmark.testLinkedCap40000:·gc.churn.PS_Survivor_Space.norm 
  thrpt    5        4724.208 ±      159.694    B/op
       LinkedArrayBenchmark.testLinkedCap40000:·gc.count                        
  thrpt    5        1291.000                 counts
       LinkedArrayBenchmark.testLinkedCap40000:·gc.time                         
  thrpt    5        4500.000                     ms
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to