[ 
https://issues.apache.org/jira/browse/JAMES-3477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17249623#comment-17249623
 ] 

ASF GitHub Bot commented on JAMES-3477:
---------------------------------------

chibenwa commented on pull request #280:
URL: https://github.com/apache/james-project/pull/280#issuecomment-745211736


   I played a bit with JMH, garbage collector reports & message size...
   
   ```
   Scenario: Startup + 100 messages for 5 rcpts, 12KB each + Shutdown
   Code version: Locking version of COW
   Benchmark                                                                  
Mode  Cnt            Score            Error   Units
   MimeMessageBenchTest.benchmark1                                            
avgt   10        5954.512 ±       110.288   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt   10         116.627 ±         1.936  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt   10         280.591 ±         4.747  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt   10           0.171 ±         0.098  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt   10          60.000                  counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt   10         302.000                      ms
   
   Scenario: Startup + 100 messages for 5 rcpts, 12KB each + Shutdown
   Code version: Always COPY
   Benchmark                                                                  
Mode  Cnt           Score           Error   Units
   MimeMessageBenchTest.benchmark1                                            
avgt   10        6024.282 ±       130.217   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt   10         115.991 ±         2.242  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt   10         277.597 ±         5.493  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt   10           0.178 ±         0.089  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt   10          60.000                  counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt   10         298.000                      ms
   
   Scenario: Startup + 100 messages for 5 rcpts, 120KB each + Shutdown
   Code version: Locking version of COW
   Benchmark                                                                  
Mode  Cnt            Score            Error   Units
   MimeMessageBenchTest.benchmark1                                            
avgt   10        11838.707 ±       1909.568   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt   10          167.785 ±         22.464  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt   10         1059.389 ±        154.302  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt   10            0.583 ±          0.915  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Survivor_Space                
avgt   10            3.754 ±          3.913  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt   10         1179.000                   counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt   10         5129.000                       ms
   
   Scenario: Startup + 100 messages for 5 rcpts, 120KB each + Shutdown
   Code version: Always COPY
   MimeMessageBenchTest.benchmark1                                            
avgt   10        12177.190 ±       1711.754   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt   10          164.735 ±         20.484  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt   10         1046.940 ±        134.789  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt   10            0.586 ±          1.042  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Survivor_Space                
avgt   10            3.900 ±          3.591  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt   10         1202.000                   counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt   10         5273.000                       ms
   
   Scenario: Startup + 10 messages for 5 rcpts, 1.2MB each + Shutdown
   Code version: Locking version of COW
   Benchmark                                                                  
Mode  Cnt            Score            Error   Units
   MimeMessageBenchTest.benchmark1                                            
avgt    3        12911.341 ±       3552.079   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt    3          135.412 ±         34.923  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt    3          799.061 ±        217.977  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt    3          173.397 ±         76.272  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Survivor_Space                
avgt    3            9.891 ±          2.784  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt    3          228.000                   counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt    3         3845.000                       ms
   
   Scenario: Startup + 10 messages for 5 rcpts, 1.2MB each + Shutdown
   Code version: Always COPY
   Benchmark                                                                  
Mode  Cnt           Score           Error   Units
   MimeMessageBenchTest.benchmark1                                            
avgt    3        13718.479 ±       11832.688   ms/op
   MimeMessageBenchTest.benchmark1:·gc.alloc.rate                             
avgt    3          128.467 ±         101.018  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Eden_Space                    
avgt    3          752.122 ±         633.602  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Old_Gen                       
avgt    3          163.080 ±         175.520  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.churn.G1_Survivor_Space                
avgt    3            9.312 ±           4.526  MB/sec
   MimeMessageBenchTest.benchmark1:·gc.count                                  
avgt    3          229.000                    counts
   MimeMessageBenchTest.benchmark1:·gc.time                                   
avgt    3         3990.000                        ms
   ```
   
   Conclusion:
    - Always copy generates slightly more GC
    - Runs sligthly slower


----------------------------------------------------------------
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]


> MimeMessageCopyOnWriteProxy is not thread safe
> ----------------------------------------------
>
>                 Key: JAMES-3477
>                 URL: https://issues.apache.org/jira/browse/JAMES-3477
>             Project: James Server
>          Issue Type: Wish
>            Reporter: Benoit Tellier
>            Priority: Major
>
> https://www.mail-archive.com/[email protected]/msg69221.html
> & 
> https://github.com/jeantil/james-project/commit/c0354ea21c5b0a8f6d46e9919f7db0d97db9eb23
> proves there is a concurrency issue in MimeMessageCopyOnWriteProxy class that 
> we need to investigate.
> It causes our test suite to be flacky.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to