Skip to content
Jingguo Yao edited this page Sep 11, 2016 · 15 revisions

This implementation does not use a Tree interface which implemented by LLRB based interval tree and B-Tree based interval tree because such an indirection will cause more memory allocations. Instead, it choose LLRB implementation or B-tree implementation based on tags given at build time. The only difference between the old LLRB implementation and the new LLRB implementation is that Overlapper is struct instead of a function in the new LLRB implementation. Compared with the old B-tree implementation, the new B-tree implementation removes the use of FreeList, which reduces the allocations.

In all the following report, the first column is for the LLRB implementation in issue-6465-opt branch. The second column is for the B-tree implementation in issue-6465-opt branch. When btree tag is used, B-tree implementation will be used.

Micro Benchmarks

The benchmarks are defined in https://github.com/yaojingguo/benchmark-interval-tree. The following reports are produced by running benchstat on the result of executing b.sh with some irrelevant reports removed.

The report shows that there is no clear winner for tree size 4. But for all bigger tree sizes, B-tree is better than LLRB. NewTree for B-tree is more expensive than for LLB since B-tree has an additional field Degree.

name                                     old time/op    new time/op    delta
NewTree-4                                  89.5ns ± 6%   285.2ns ± 1%  +218.61%         (p=0.000 n=10+9)
Insert4-4                                  1.18µs ±21%    1.33µs ± 6%   +12.62%        (p=0.004 n=10+10)
FastInsert4-4                              1.15µs ±10%    1.40µs ±17%   +22.07%        (p=0.000 n=10+10)
Delete4-4                                  2.19µs ± 3%    2.72µs ± 5%   +24.37%          (p=0.000 n=8+8)
Get4-4                                     3.61µs ± 8%    2.80µs ± 5%   -22.44%         (p=0.000 n=10+8)
Insert8-4                                  2.83µs ± 4%    2.55µs ± 6%    -9.88%         (p=0.000 n=10+9)
FastInsert8-4                              2.53µs ± 4%    2.50µs ±10%      ~           (p=0.382 n=10+10)
Delete8-4                                  5.29µs ± 7%    5.38µs ±11%      ~            (p=0.549 n=9+10)
Get8-4                                     13.5µs ±20%     8.5µs ± 7%   -37.24%        (p=0.000 n=10+10)
Insert100-4                                74.0µs ±14%    48.6µs ±12%   -34.34%        (p=0.000 n=10+10)
FastInsert100-4                            50.7µs ± 9%    44.4µs ± 8%   -12.43%         (p=0.000 n=9+10)
Delete100-4                                 150µs ± 9%     101µs ± 7%   -32.53%         (p=0.000 n=10+9)
Get100-4                                    489µs ±13%     286µs ± 8%   -41.58%        (p=0.000 n=10+10)
Insert1K-4                                 1.03ms ± 1%    0.69ms ±10%   -32.21%         (p=0.000 n=7+10)
FastInsert1K-4                              705µs ± 5%     643µs ± 9%    -8.82%         (p=0.000 n=9+10)
Delete1K-4                                 2.40ms ± 7%    1.40ms ± 3%   -41.50%         (p=0.000 n=10+9)
Get1K-4                                    5.81ms ± 6%    3.84ms ± 8%   -33.87%          (p=0.000 n=9+9)
Insert10K-4                                14.4ms ± 7%     9.9ms ±10%   -31.27%         (p=0.000 n=10+9)
FastInsert10K-4                            10.0ms ± 8%     9.7ms ±12%      ~           (p=0.436 n=10+10)
Delete10K-4                                36.5ms ± 6%    20.4ms ± 9%   -44.05%        (p=0.000 n=10+10)
Get10K-4                                   69.5ms ±10%    47.0ms ± 7%   -32.46%          (p=0.000 n=9+9)
Insert100K-4                                162ms ± 4%     108ms ± 5%   -33.07%         (p=0.000 n=10+9)
FastInsert100K-4                            110ms ± 3%     106ms ± 4%    -4.20%         (p=0.002 n=10+9)
Delete100K-4                                459ms ± 2%     242ms ± 5%   -47.36%         (p=0.000 n=9+10)
Get100K-4                                   691ms ± 4%     516ms ± 6%   -25.23%        (p=0.000 n=10+10)
Insert1M-4                                  1.90s ± 2%     1.29s ± 4%   -32.50%          (p=0.000 n=9+9)
FastInsert1M-4                              1.20s ± 2%     1.20s ± 3%      ~            (p=0.573 n=10+8)
Delete1M-4                                  5.64s ± 9%     2.82s ± 9%   -49.99%        (p=0.000 n=10+10)
Get1M-4                                     7.21s ± 3%     5.82s ± 4%   -19.27%        (p=0.000 n=10+10)
RandomInsert4-4                            1.77µs ±12%    1.52µs ± 5%   -14.24%         (p=0.000 n=10+8)
RandomFastInsert4-4                        1.72µs ±17%    1.50µs ± 9%   -12.52%        (p=0.003 n=10+10)
RandomDelete4-4                            2.51µs ±16%    2.75µs ± 8%    +9.57%        (p=0.007 n=10+10)
RandomGet4-4                               3.21µs ±29%    2.77µs ±39%      ~           (p=0.101 n=10+10)
RandomInsert8-4                            4.08µs ±13%    2.82µs ±14%   -30.99%        (p=0.000 n=10+10)
RandomFastInsert8-4                        3.73µs ±10%    2.82µs ± 4%   -24.39%         (p=0.000 n=10+8)
RandomDelete8-4                            6.58µs ±19%    5.76µs ±11%   -12.48%        (p=0.003 n=10+10)
RandomGet8-4                               12.8µs ±13%     8.9µs ±18%   -30.18%          (p=0.000 n=9+9)
RandomInsert100-4                          94.6µs ± 9%    63.5µs ± 8%   -32.92%         (p=0.000 n=9+10)
RandomFastInsert100-4                      69.3µs ± 7%    60.6µs ± 7%   -12.60%        (p=0.000 n=10+10)
RandomDelete100-4                           194µs ± 7%     120µs ± 9%   -37.97%        (p=0.000 n=10+10)
RandomGet100-4                             2.12ms ±10%    1.19ms ±13%   -43.66%        (p=0.000 n=10+10)
RandomInsert1K-4                           1.64ms ±10%    1.01ms ± 6%   -38.03%         (p=0.000 n=9+10)
RandomFastInsert1K-4                       1.20ms ± 6%    0.96ms ± 4%   -19.86%         (p=0.000 n=8+10)
RandomDelete1K-4                           3.50ms ±10%    2.03ms ± 5%   -41.86%        (p=0.000 n=10+10)
RandomGet1K-4                               246ms ±11%     134ms ± 7%   -45.54%         (p=0.000 n=10+9)
RandomInsert10K-4                          26.7ms ± 9%    16.0ms ± 5%   -40.24%         (p=0.000 n=10+8)
RandomFastInsert10K-4                      18.7ms ± 6%    15.7ms ±11%   -15.95%        (p=0.000 n=10+10)
RandomDelete10K-4                          60.4ms ± 7%    36.3ms ± 9%   -39.88%        (p=0.000 n=10+10)
RandomGet10K-4                              31.3s ±16%     14.6s ± 8%   -53.30%        (p=0.000 n=10+10)
RandomInsert100K-4                          578ms ±12%     398ms ±24%   -31.17%        (p=0.000 n=10+10)
RandomFastInsert100K-4                      441ms ±22%     378ms ±16%   -14.25%        (p=0.011 n=10+10)
RandomDelete100K-4                          1.35s ± 8%     0.79s ±14%   -41.33%        (p=0.000 n=10+10)
RandomInsert1M-4                            12.7s ±11%      8.4s ±16%   -34.28%        (p=0.000 n=10+10)
RandomFastInsert1M-4                        8.83s ±10%     7.98s ±21%    -9.64%         (p=0.043 n=9+10)
RandomDelete1M-4                            27.4s ± 8%     16.7s ±18%   -39.09%        (p=0.000 n=10+10)

name                                     old alloc/op   new alloc/op   delta
NewTree-4                                  0.00B ±NaN%    0.00B ±NaN%      ~     (all samples are equal)
Insert4-4                                    384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
FastInsert4-4                                384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
Delete4-4                                    384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
Get4-4                                       448B ± 0%      448B ± 0%      ~     (all samples are equal)
Insert8-4                                    768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
FastInsert8-4                                768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
Delete8-4                                    768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
Get8-4                                     1.92kB ± 0%    1.92kB ± 0%      ~     (all samples are equal)
Insert100-4                                9.60kB ± 0%    5.70kB ± 0%   -40.67%        (p=0.000 n=10+10)
FastInsert100-4                            9.60kB ± 0%    5.70kB ± 0%   -40.67%        (p=0.000 n=10+10)
Delete100-4                                9.60kB ± 0%    5.70kB ± 0%   -40.67%        (p=0.000 n=10+10)
Get100-4                                   94.7kB ± 0%    94.7kB ± 0%      ~     (all samples are equal)
Insert1K-4                                 96.0kB ± 0%    53.2kB ± 0%   -44.53%        (p=0.000 n=10+10)
FastInsert1K-4                             96.0kB ± 0%    53.2kB ± 0%   -44.53%        (p=0.000 n=10+10)
Delete1K-4                                 96.0kB ± 0%    53.2kB ± 0%   -44.53%        (p=0.000 n=10+10)
Get1K-4                                    1.00MB ± 0%    1.00MB ± 0%      ~     (all samples are equal)
Insert10K-4                                 960kB ± 0%     538kB ± 0%   -43.98%        (p=0.000 n=10+10)
FastInsert10K-4                             960kB ± 0%     538kB ± 0%   -43.98%        (p=0.000 n=10+10)
Delete10K-4                                 960kB ± 0%     538kB ± 0%   -43.98%        (p=0.000 n=10+10)
Get10K-4                                   10.1MB ± 0%    10.1MB ± 0%      ~     (all samples are equal)
Insert100K-4                               9.60MB ± 0%    5.39MB ± 0%   -43.81%        (p=0.000 n=10+10)
FastInsert100K-4                           9.60MB ± 0%    5.39MB ± 0%   -43.81%        (p=0.000 n=10+10)
Delete100K-4                               9.60MB ± 0%    5.39MB ± 0%   -43.81%        (p=0.000 n=10+10)
Get100K-4                                   101MB ± 0%     101MB ± 0%      ~     (all samples are equal)
Insert1M-4                                 96.0MB ± 0%    53.9MB ± 0%   -43.82%        (p=0.000 n=10+10)
FastInsert1M-4                             96.0MB ± 0%    53.9MB ± 0%   -43.82%        (p=0.000 n=10+10)
Delete1M-4                                 96.0MB ± 0%    53.9MB ± 0%   -43.82%        (p=0.000 n=10+10)
Get1M-4                                    1.01GB ± 0%    1.01GB ± 0%      ~     (all samples are equal)
RandomInsert4-4                              384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
RandomFastInsert4-4                          384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
RandomDelete4-4                              384B ± 0%      272B ± 0%   -29.17%        (p=0.000 n=10+10)
RandomGet4-4                                 323B ±60%      390B ±67%      ~           (p=0.117 n=10+10)
RandomInsert8-4                              768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
RandomFastInsert8-4                          768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
RandomDelete8-4                              768B ± 0%      400B ± 0%   -47.92%        (p=0.000 n=10+10)
RandomGet8-4                               1.60kB ±16%    1.65kB ±38%      ~            (p=0.409 n=9+10)
RandomInsert100-4                          9.60kB ± 0%    3.98kB ± 0%   -58.50%        (p=0.000 n=10+10)
RandomFastInsert100-4                      9.60kB ± 0%    3.98kB ± 0%   -58.50%        (p=0.000 n=10+10)
RandomDelete100-4                          9.60kB ± 0%    3.98kB ± 0%   -58.50%        (p=0.000 n=10+10)
RandomGet100-4                              309kB ±10%     319kB ±12%      ~           (p=0.342 n=10+10)
RandomInsert1K-4                           96.0kB ± 0%    39.3kB ±10%   -59.04%        (p=0.000 n=10+10)
RandomFastInsert1K-4                       96.0kB ± 0%    39.2kB ± 7%   -59.21%        (p=0.000 n=10+10)
RandomDelete1K-4                           96.0kB ± 0%    39.8kB ± 6%   -58.58%         (p=0.000 n=10+9)
RandomGet1K-4                              28.6MB ± 3%    28.5MB ± 3%      ~           (p=0.986 n=10+10)
RandomInsert10K-4                           960kB ± 0%     378kB ± 3%   -60.66%        (p=0.000 n=10+10)
RandomFastInsert10K-4                       960kB ± 0%     376kB ± 4%   -60.79%        (p=0.000 n=10+10)
RandomDelete10K-4                           960kB ± 0%     382kB ± 5%   -60.16%        (p=0.000 n=10+10)
RandomGet10K-4                             4.65GB ± 1%    4.64GB ± 1%      ~           (p=0.529 n=10+10)
RandomInsert100K-4                         9.60MB ± 0%    3.79MB ± 1%   -60.47%        (p=0.000 n=10+10)
RandomFastInsert100K-4                     9.60MB ± 0%    3.81MB ± 1%   -60.36%        (p=0.000 n=10+10)
RandomDelete100K-4                         9.60MB ± 0%    3.85MB ± 1%   -59.92%        (p=0.000 n=10+10)
RandomInsert1M-4                           96.0MB ± 0%    37.9MB ± 0%   -60.51%        (p=0.000 n=10+10)
RandomFastInsert1M-4                       96.0MB ± 0%    37.9MB ± 0%   -60.52%        (p=0.000 n=10+10)
RandomDelete1M-4                           96.0MB ± 0%    38.3MB ± 0%   -60.11%        (p=0.000 n=10+10)

name                                     old allocs/op  new allocs/op  delta
NewTree-4                                   0.00 ±NaN%     0.00 ±NaN%      ~     (all samples are equal)
Insert4-4                                    4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
FastInsert4-4                                4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
Delete4-4                                    4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
Get4-4                                       12.0 ± 0%      12.0 ± 0%      ~     (all samples are equal)
Insert8-4                                    8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
FastInsert8-4                                8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
Delete8-4                                    8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
Get8-4                                       32.0 ± 0%      32.0 ± 0%      ~     (all samples are equal)
Insert100-4                                   100 ± 0%        20 ± 0%   -80.00%        (p=0.000 n=10+10)
FastInsert100-4                               100 ± 0%        20 ± 0%   -80.00%        (p=0.000 n=10+10)
Delete100-4                                   100 ± 0%        20 ± 0%   -80.00%        (p=0.000 n=10+10)
Get100-4                                      588 ± 0%       588 ± 0%      ~     (all samples are equal)
Insert1K-4                                  1.00k ± 0%     0.11k ± 0%   -88.90%        (p=0.000 n=10+10)
FastInsert1K-4                              1.00k ± 0%     0.11k ± 0%   -88.90%        (p=0.000 n=10+10)
Delete1K-4                                  1.00k ± 0%     0.11k ± 0%   -88.90%        (p=0.000 n=10+10)
Get1K-4                                     5.99k ± 0%     5.99k ± 0%      ~     (all samples are equal)
Insert10K-4                                 10.0k ± 0%      1.0k ± 0%   -89.95%        (p=0.000 n=10+10)
FastInsert10K-4                             10.0k ± 0%      1.0k ± 0%   -89.95%        (p=0.000 n=10+10)
Delete10K-4                                 10.0k ± 0%      1.0k ± 0%   -89.95%        (p=0.000 n=10+10)
Get10K-4                                    60.0k ± 0%     60.0k ± 0%      ~     (all samples are equal)
Insert100K-4                                 100k ± 0%       10k ± 0%   -90.10%        (p=0.000 n=10+10)
FastInsert100K-4                             100k ± 0%       10k ± 0%   -90.10%        (p=0.000 n=10+10)
Delete100K-4                                 100k ± 0%       10k ± 0%   -90.10%        (p=0.000 n=10+10)
Get100K-4                                    600k ± 0%      600k ± 0%      ~     (all samples are equal)
Insert1M-4                                  1.00M ± 0%     0.10M ± 0%   -90.12%        (p=0.000 n=10+10)
FastInsert1M-4                              1.00M ± 0%     0.10M ± 0%   -90.12%        (p=0.000 n=10+10)
Delete1M-4                                  1.00M ± 0%     0.10M ± 0%   -90.12%        (p=0.000 n=10+10)
Get1M-4                                     6.00M ± 0%     6.00M ± 0%      ~     (all samples are equal)
RandomInsert4-4                              4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
RandomFastInsert4-4                          4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
RandomDelete4-4                              4.00 ± 0%      5.00 ± 0%   +25.00%        (p=0.000 n=10+10)
RandomGet4-4                                 9.70 ±38%     11.56 ±13%   +19.13%         (p=0.018 n=10+9)
RandomInsert8-4                              8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
RandomFastInsert8-4                          8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
RandomDelete8-4                              8.00 ± 0%      6.00 ± 0%   -25.00%        (p=0.000 n=10+10)
RandomGet8-4                                 29.1 ± 7%      30.1 ±17%      ~             (p=0.169 n=9+9)
RandomInsert100-4                             100 ± 0%        15 ± 0%   -85.00%        (p=0.000 n=10+10)
RandomFastInsert100-4                         100 ± 0%        15 ± 0%   -85.00%        (p=0.000 n=10+10)
RandomDelete100-4                             100 ± 0%        15 ± 0%   -85.00%        (p=0.000 n=10+10)
RandomGet100-4                                747 ± 3%       753 ± 3%      ~           (p=0.270 n=10+10)
RandomInsert1K-4                            1.00k ± 0%     0.09k ± 8%   -91.40%        (p=0.000 n=10+10)
RandomFastInsert1K-4                        1.00k ± 0%     0.09k ± 6%   -91.43%        (p=0.000 n=10+10)
RandomDelete1K-4                            1.00k ± 0%     0.09k ± 4%   -91.34%         (p=0.000 n=10+9)
RandomGet1K-4                               10.7k ± 1%     10.7k ± 0%      ~           (p=1.000 n=10+10)
RandomInsert10K-4                           10.0k ± 0%      0.7k ± 3%   -92.92%         (p=0.000 n=10+9)
RandomFastInsert10K-4                       10.0k ± 0%      0.7k ± 5%   -92.91%        (p=0.000 n=10+10)
RandomDelete10K-4                           10.0k ± 0%      0.7k ± 4%   -92.83%        (p=0.000 n=10+10)
RandomGet10K-4                               177k ± 0%      177k ± 0%      ~           (p=0.393 n=10+10)
RandomInsert100K-4                           100k ± 0%        7k ± 1%   -93.00%        (p=0.000 n=10+10)
RandomFastInsert100K-4                       100k ± 0%        7k ± 1%   -92.98%        (p=0.000 n=10+10)
RandomDelete100K-4                           100k ± 0%        7k ± 1%   -92.94%        (p=0.000 n=10+10)
RandomInsert1M-4                            1.00M ± 0%     0.07M ± 0%   -93.03%        (p=0.000 n=10+10)
RandomFastInsert1M-4                        1.00M ± 0%     0.07M ± 0%   -93.04%         (p=0.000 n=10+9)
RandomDelete1M-4                            1.00M ± 0%     0.07M ± 0%   -92.99%        (p=0.000 n=10+10)

-bench 00_C

The report shows that B-tree is slightly better than LLRB. This report is consistent with micro benchmarks because these tests use small tree sizes. For example, the max tree used by Insert100_Cockroach is about 50.

name                               old time/op    new time/op    delta
Insert100_Cockroach-4                2.64ms ±33%    2.65ms ±23%     ~           (p=0.739 n=10+10)
Insert1000_Cockroach-4               16.6ms ±11%    16.7ms ± 7%     ~            (p=0.905 n=10+9)
Update100_Cockroach-4                6.46ms ±19%    6.60ms ±16%     ~           (p=0.529 n=10+10)
Update1000_Cockroach-4               46.4ms ±11%    47.3ms ±10%     ~           (p=0.631 n=10+10)
Upsert100_Cockroach-4                8.49ms ± 8%    8.86ms ±12%     ~            (p=0.447 n=9+10)
Upsert1000_Cockroach-4               53.9ms ± 6%    57.3ms ± 8%   +6.28%         (p=0.010 n=9+10)
Delete100_Cockroach-4                3.00ms ±10%    2.94ms ± 6%     ~            (p=0.400 n=10+9)
Delete1000_Cockroach-4               22.3ms ± 9%    21.4ms ± 8%     ~             (p=0.136 n=9+9)
Scan100_Cockroach-4                   630µs ±11%     646µs ±12%     ~           (p=0.481 n=10+10)
Scan1000_Cockroach-4                 3.45ms ±17%    3.34ms ±11%     ~            (p=0.400 n=9+10)
Scan10000_Cockroach-4                34.3ms ±23%    31.6ms ± 1%     ~            (p=0.417 n=10+7)
Scan1000Limit100_Cockroach-4          713µs ±24%     646µs ±13%     ~            (p=0.053 n=10+9)
InterleavedSelect1000_Cockroach-4     116ms ±10%     113ms ±17%     ~           (p=0.353 n=10+10)
TrackChoices100_Cockroach-4          98.3µs ±13%    96.8µs ±28%     ~            (p=0.573 n=8+10)
TrackChoices1000_Cockroach-4         79.1µs ±10%    75.6µs ± 7%     ~            (p=0.095 n=9+10)
InsertDistinct100_Cockroach-4        3.04ms ±22%    2.62ms ±32%  -13.75%         (p=0.022 n=10+9)
WideTable100_Cockroach-4             21.3ms ±11%    21.4ms ±23%     ~             (p=0.730 n=9+9)
WideTable1000_Cockroach-4             165ms ± 8%     168ms ±23%     ~            (p=0.497 n=9+10)

name                               old alloc/op   new alloc/op   delta
Insert100_Cockroach-4                 530kB ± 0%     529kB ± 0%     ~             (p=0.297 n=9+9)
Insert1000_Cockroach-4               4.59MB ± 0%    4.59MB ± 0%     ~             (p=0.200 n=8+9)
Update100_Cockroach-4                 849kB ± 0%     848kB ± 0%   -0.19%         (p=0.000 n=10+9)
Update1000_Cockroach-4               7.03MB ± 0%    7.01MB ± 0%   -0.32%          (p=0.000 n=8+9)
Upsert100_Cockroach-4                 938kB ± 0%     935kB ± 0%   -0.30%        (p=0.000 n=10+10)
Upsert1000_Cockroach-4               7.81MB ± 1%    7.82MB ± 1%     ~           (p=0.912 n=10+10)
Delete100_Cockroach-4                 166kB ± 2%     165kB ± 1%     ~           (p=0.143 n=10+10)
Delete1000_Cockroach-4               1.17MB ± 0%    1.17MB ± 0%     ~             (p=0.606 n=8+9)
Scan100_Cockroach-4                  53.9kB ± 0%    53.8kB ± 0%   -0.19%          (p=0.000 n=8+9)
Scan1000_Cockroach-4                  321kB ± 0%     321kB ± 0%   -0.03%         (p=0.000 n=9+10)
Scan10000_Cockroach-4                5.53MB ± 0%    5.53MB ± 0%   -0.00%        (p=0.007 n=10+10)
Scan1000Limit100_Cockroach-4         54.3kB ± 0%    54.3kB ± 0%   -0.18%        (p=0.000 n=10+10)
InterleavedSelect1000_Cockroach-4     792kB ± 0%     792kB ± 0%   -0.02%          (p=0.001 n=8+8)
TrackChoices100_Cockroach-4          19.1kB ± 1%    19.1kB ± 0%   +0.45%         (p=0.036 n=10+8)
TrackChoices1000_Cockroach-4         20.5kB ± 0%    20.5kB ± 0%     ~            (p=0.986 n=10+9)
InsertDistinct100_Cockroach-4         458kB ± 9%     432kB ± 1%   -5.75%         (p=0.002 n=10+8)
WideTable100_Cockroach-4             2.61MB ± 0%    2.61MB ± 0%     ~           (p=0.075 n=10+10)
WideTable1000_Cockroach-4            23.5MB ± 0%    23.5MB ± 0%   -0.16%          (p=0.000 n=9+9)

name                               old allocs/op  new allocs/op  delta
Insert100_Cockroach-4                 2.49k ± 0%     2.49k ± 0%     ~            (p=0.185 n=9+10)
Insert1000_Cockroach-4                21.5k ± 0%     21.5k ± 0%     ~             (p=0.055 n=8+9)
Update100_Cockroach-4                 3.75k ± 0%     3.71k ± 0%   -0.87%         (p=0.000 n=10+9)
Update1000_Cockroach-4                29.7k ± 0%     29.4k ± 0%   -1.01%          (p=0.000 n=8+9)
Upsert100_Cockroach-4                 5.95k ± 0%     5.90k ± 0%   -0.85%         (p=0.000 n=9+10)
Upsert1000_Cockroach-4                45.1k ± 0%     44.6k ± 0%   -1.12%         (p=0.000 n=9+10)
Delete100_Cockroach-4                 1.74k ± 0%     1.74k ± 0%   -0.21%        (p=0.045 n=10+10)
Delete1000_Cockroach-4                12.6k ± 0%     12.6k ± 0%   -0.02%         (p=0.000 n=9+10)
Scan100_Cockroach-4                     466 ± 0%       465 ± 0%   -0.21%         (p=0.002 n=8+10)
Scan1000_Cockroach-4                  2.35k ± 0%     2.35k ± 0%   -0.04%         (p=0.000 n=10+9)
Scan10000_Cockroach-4                 21.1k ± 0%     21.1k ± 0%     ~             (p=0.131 n=9+8)
Scan1000Limit100_Cockroach-4            474 ± 0%       473 ± 0%   -0.21%        (p=0.000 n=10+10)
InterleavedSelect1000_Cockroach-4     3.03k ± 0%     3.03k ± 0%   -0.06%        (p=0.000 n=10+10)
TrackChoices100_Cockroach-4            83.0 ± 0%      83.0 ± 0%     ~     (all samples are equal)
TrackChoices1000_Cockroach-4           79.0 ± 0%      79.0 ± 0%     ~     (all samples are equal)
InsertDistinct100_Cockroach-4         4.09k ±17%     3.61k ± 2%  -11.84%         (p=0.000 n=10+8)
WideTable100_Cockroach-4              24.4k ± 0%     24.3k ± 0%   -0.42%         (p=0.000 n=10+9)
WideTable1000_Cockroach-4              227k ± 0%      226k ± 0%   -0.39%         (p=0.000 n=10+9)

Clone this wiki locally