• I
    Aggregate hot Iterator counters in LocalStatistics (DBIter::Next perf regression) · 580fede3
    Islam AbdelRahman 提交于
    Summary:
    This patch bump the counters in the frequent code path DBIter::Next() / DBIter::Prev() in a local data members and send them to Statistics when the iterator is destroyed
    A better solution will be to have thread_local implementation for Statistics
    
    New performance
    ```
    readseq      :       0.035 micros/op 28597881 ops/sec; 3163.7 MB/s
         1,851,568,819      stalled-cycles-frontend   #   31.29% frontend cycles idle    [49.86%]
           884,929,823      stalled-cycles-backend    #   14.95% backend  cycles idle    [50.21%]
    readreverse  :       0.071 micros/op 14077393 ops/sec; 1557.3 MB/s
         3,239,575,993      stalled-cycles-frontend   #   27.36% frontend cycles idle    [49.96%]
         1,558,253,983      stalled-cycles-backend    #   13.16% backend  cycles idle    [50.14%]
    
    ```
    
    Existing performance
    
    ```
    readreverse  :       0.174 micros/op 5732342 ops/sec;  634.1 MB/s
        20,570,209,389      stalled-cycles-frontend   #   70.71% frontend cycles idle    [50.01%]
        18,422,816,837      stalled-cycles-backend    #   63.33% backend  cycles idle    [50.04%]
    
    readseq      :       0.119 micros/op 8400537 ops/sec;  929.3 MB/s
        15,634,225,844      stalled-cycles-frontend   #   79.07% frontend cycles idle    [49.96%]
        14,227,427,453      stalled-cycles-backend    #   71.95% backend  cycles idle    [50.09%]
    ```
    
    Test Plan: unit tests
    
    Reviewers: yhchiang, sdong, igor
    
    Reviewed By: sdong
    
    Subscribers: andrewkr, dhruba
    
    Differential Revision: https://reviews.facebook.net/D55107
    580fede3
可在Tags中查看这些版本中当前仓库的状态.
HISTORY.md 31.0 KB