---
tags: linux kernel, rpmalloc, mimalloc-bench
---
# rpmalloc 測試結果
> 這邊是存放測試紀錄比較雜亂的部分
> 有整理過的部分詳情可見 [Linux 核心專題: 實作高效記憶體配置器](https://hackmd.io/22BcyuTTSJmkl3KqCtChFg)
## mimalloc-bench (x86-64)
### 測試 v1
這邊使用
```shell
$ time ../../bench.sh -n=10 rp allt
```
來重複執行 10 次所有的測試
#### 原始的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
cfrac rp 02.99 4040 2.99 0.00 0 744
cfrac rp 03.04 4032 3.04 0.00 0 745
cfrac rp 03.04 4064 3.04 0.00 0 744
cfrac rp 03.03 4040 3.03 0.00 0 744
cfrac rp 03.02 4024 3.02 0.00 0 747
cfrac rp 03.04 3996 3.03 0.00 0 744
cfrac rp 03.09 3984 3.09 0.00 0 743
cfrac rp 03.04 4004 3.04 0.00 0 744
cfrac rp 03.05 4032 3.05 0.00 0 744
cfrac rp 03.06 4104 3.06 0.00 0 745
espresso rp 03.16 7888 3.15 0.00 0 1777
espresso rp 03.14 7888 3.14 0.00 0 1777
espresso rp 03.14 7888 3.14 0.00 0 1778
espresso rp 03.15 7888 3.13 0.02 0 1777
espresso rp 03.15 7888 3.14 0.00 0 1778
espresso rp 03.15 7888 3.14 0.01 0 1777
espresso rp 03.14 7888 3.14 0.00 0 1777
espresso rp 03.16 7888 3.16 0.00 0 1777
espresso rp 03.15 7888 3.14 0.00 0 1776
espresso rp 03.13 7888 3.13 0.00 0 1778
barnes rp 02.34 59708 2.33 0.01 0 16932
barnes rp 02.36 59624 2.35 0.01 0 16928
barnes rp 02.35 59700 2.33 0.01 0 16931
barnes rp 02.35 59696 2.34 0.01 0 16931
barnes rp 02.36 59700 2.33 0.02 0 16931
barnes rp 02.39 59764 2.38 0.00 0 16931
barnes rp 02.35 59692 2.33 0.02 0 16931
barnes rp 02.37 59764 2.35 0.01 0 16932
barnes rp 02.36 59708 2.34 0.01 0 16933
barnes rp 02.36 59624 2.36 0.00 0 16928
redis rp 2.560 10004 0.11 0.01 0 1798
redis rp 2.599 10040 0.11 0.01 0 1795
redis rp 2.579 9972 0.10 0.02 0 1797
redis rp 2.619 9968 0.12 0.00 0 1794
redis rp 2.680 9972 0.11 0.02 0 1796
redis rp 2.640 9972 0.10 0.03 0 1795
redis rp 2.680 9976 0.10 0.03 0 1796
redis rp 2.619 9972 0.11 0.02 0 1796
redis rp 2.640 10016 0.11 0.02 0 1796
redis rp 2.700 10012 0.13 0.00 0 1794
larsonN-sized rp 3.490 149848 54.16 0.27 0 36934
larsonN-sized rp 3.519 147296 54.28 0.25 0 36292
larsonN-sized rp 3.552 142232 54.45 0.18 0 35036
larsonN-sized rp 3.560 146248 54.36 0.23 0 36036
larsonN-sized rp 3.538 146748 54.26 0.28 0 36161
larsonN-sized rp 3.542 148460 54.33 0.24 0 36587
larsonN-sized rp 3.593 143064 54.20 0.23 0 35240
larsonN-sized rp 3.608 144152 54.31 0.17 0 35514
larsonN-sized rp 3.535 147696 54.33 0.21 0 36396
larsonN-sized rp 3.553 144096 54.40 0.21 0 35494
mstressN rp 00.80 455996 5.11 0.76 0 294476
mstressN rp 00.80 459680 5.05 0.81 0 295456
mstressN rp 00.79 453888 5.12 0.75 0 293969
mstressN rp 00.81 445496 5.12 0.73 0 291958
mstressN rp 00.80 440232 5.15 0.74 0 290599
mstressN rp 00.78 444696 5.07 0.78 0 291624
mstressN rp 00.80 443172 5.08 0.77 0 291286
mstressN rp 00.79 442012 5.10 0.75 0 291064
mstressN rp 00.77 439308 5.14 0.71 0 290364
mstressN rp 00.77 442568 5.12 0.74 0 291239
rptestN rp .626 110904 1.46 0.21 0 27419
rptestN rp .664 112968 1.45 0.19 0 27938
rptestN rp .661 111348 1.44 0.19 0 27530
rptestN rp .626 112440 1.34 0.23 0 27803
rptestN rp .595 110640 1.31 0.22 0 27361
rptestN rp .610 111240 1.31 0.24 1 27509
rptestN rp .635 110908 1.41 0.18 0 27421
rptestN rp .639 110520 1.44 0.17 1 27339
rptestN rp .620 110472 1.40 0.21 0 27316
rptestN rp .647 110680 1.40 0.19 0 27370
gs rp 00.77 44020 0.75 0.01 0 7795
gs rp 00.76 43944 0.75 0.01 0 7792
gs rp 00.76 43980 0.73 0.01 0 7793
gs rp 00.75 43956 0.73 0.02 0 7795
gs rp 00.76 43912 0.75 0.00 0 7791
gs rp 00.77 43996 0.76 0.00 0 7791
gs rp 00.76 43940 0.74 0.01 0 7792
gs rp 00.77 43860 0.75 0.02 0 7791
gs rp 00.78 43908 0.77 0.01 0 7791
gs rp 00.77 43960 0.74 0.02 0 7792
lua rp 03.46 76836 3.14 0.31 0 201403
lua rp 03.43 76792 3.14 0.29 0 201406
lua rp 03.45 76824 3.18 0.26 0 201306
lua rp 03.43 76856 3.12 0.31 0 201399
lua rp 03.43 76856 3.13 0.30 0 201306
lua rp 03.45 76800 3.16 0.27 0 201424
lua rp 03.44 76728 3.18 0.25 0 201321
lua rp 03.45 76852 3.16 0.28 0 201379
lua rp 03.46 76828 3.16 0.29 0 201336
lua rp 03.44 76888 3.13 0.30 0 201320
alloc-test1 rp 02.81 12892 2.81 0.00 0 2988
alloc-test1 rp 02.72 12892 2.71 0.00 0 2989
alloc-test1 rp 02.71 12868 2.70 0.00 0 2988
alloc-test1 rp 02.73 12892 2.72 0.00 0 2990
alloc-test1 rp 02.73 12896 2.73 0.00 0 2988
alloc-test1 rp 02.70 12868 2.70 0.00 0 2989
alloc-test1 rp 02.73 12896 2.72 0.00 0 2988
alloc-test1 rp 02.76 12920 2.75 0.00 0 2992
alloc-test1 rp 02.72 12892 2.71 0.01 0 2989
alloc-test1 rp 02.73 12888 2.72 0.00 0 2990
alloc-testN rp 03.19 20224 37.00 0.04 0 4608
alloc-testN rp 03.19 20260 37.36 0.08 0 4608
alloc-testN rp 03.22 20244 37.45 0.09 0 4611
alloc-testN rp 03.27 20244 37.60 0.05 0 4610
alloc-testN rp 03.22 20236 37.45 0.01 0 4610
alloc-testN rp 03.24 20240 37.86 0.03 0 4610
alloc-testN rp 03.27 20236 37.95 0.03 0 4610
alloc-testN rp 03.25 20236 37.88 0.01 0 4610
alloc-testN rp 03.23 20256 37.70 0.12 0 4609
alloc-testN rp 03.23 20260 37.90 0.04 0 4611
sh6benchN rp 00.24 251380 2.47 0.07 0 62648
sh6benchN rp 00.24 251380 2.45 0.09 0 62649
sh6benchN rp 00.24 251380 2.46 0.08 0 62646
sh6benchN rp 00.25 251376 2.46 0.12 0 62646
sh6benchN rp 00.23 251380 2.40 0.11 0 62648
sh6benchN rp 00.23 251380 2.39 0.06 0 62649
sh6benchN rp 00.23 251380 2.38 0.12 0 62648
sh6benchN rp 00.24 251380 2.43 0.08 0 62648
sh6benchN rp 00.22 251380 2.33 0.11 0 62648
sh6benchN rp 00.23 251380 2.36 0.09 0 62648
sh8benchN rp 00.57 158328 5.98 0.05 0 39444
sh8benchN rp 00.58 163744 6.22 0.06 0 40821
sh8benchN rp 00.56 155548 5.85 0.07 0 38771
sh8benchN rp 00.60 163896 6.19 0.05 0 40835
sh8benchN rp 00.56 156552 5.83 0.09 0 39011
sh8benchN rp 00.57 157680 5.98 0.08 0 39302
sh8benchN rp 00.56 158804 5.82 0.06 0 39589
sh8benchN rp 00.56 157688 5.93 0.07 0 39283
sh8benchN rp 00.56 159928 5.85 0.09 0 39843
sh8benchN rp 00.59 159848 6.07 0.07 0 39859
xmalloc-testN rp 0.468 68944 46.13 4.70 0 17049
xmalloc-testN rp 0.531 83024 42.15 4.20 0 20569
xmalloc-testN rp 0.420 71184 43.46 4.02 3 17609
xmalloc-testN rp 0.526 75344 41.98 4.34 0 18650
xmalloc-testN rp 0.450 72524 42.82 4.21 3 17945
xmalloc-testN rp 0.498 71120 42.43 4.26 1 17599
xmalloc-testN rp 0.443 70864 42.83 4.16 1 17530
xmalloc-testN rp 0.513 80400 42.15 4.26 1 19916
xmalloc-testN rp 0.421 78480 43.29 3.91 6 19434
xmalloc-testN rp 0.373 67596 44.32 3.66 0 16712
cache-scratch1 rp 00.94 4936 0.94 0.00 0 567
cache-scratch1 rp 00.92 4864 0.92 0.00 0 567
cache-scratch1 rp 00.93 4876 0.92 0.00 0 565
cache-scratch1 rp 00.92 4936 0.92 0.00 0 566
cache-scratch1 rp 00.92 4936 0.92 0.00 0 567
cache-scratch1 rp 00.93 4876 0.92 0.00 0 567
cache-scratch1 rp 00.93 4876 0.93 0.00 0 567
cache-scratch1 rp 00.91 4860 0.91 0.00 0 567
cache-scratch1 rp 00.91 4936 0.91 0.00 0 567
cache-scratch1 rp 00.92 4860 0.92 0.00 0 567
cache-scratchN rp 00.19 4876 2.26 0.00 0 590
cache-scratchN rp 00.19 4876 2.28 0.00 0 589
cache-scratchN rp 00.19 4960 2.27 0.00 0 591
cache-scratchN rp 00.19 4960 2.28 0.00 0 590
cache-scratchN rp 00.19 4960 2.28 0.00 0 591
cache-scratchN rp 00.19 4884 2.28 0.00 0 589
cache-scratchN rp 00.19 4960 2.29 0.00 0 590
cache-scratchN rp 00.19 4884 2.30 0.00 0 590
cache-scratchN rp 00.19 4932 2.29 0.00 0 591
cache-scratchN rp 00.19 4932 2.29 0.00 0 590
glibc-simple rp 01.95 2996 1.95 0.00 0 612
glibc-simple rp 01.93 2996 1.92 0.00 0 614
glibc-simple rp 01.95 2996 1.95 0.00 0 613
glibc-simple rp 01.94 2996 1.94 0.00 0 615
glibc-simple rp 01.93 2996 1.93 0.00 0 613
glibc-simple rp 01.92 2996 1.92 0.00 0 614
glibc-simple rp 01.92 2996 1.92 0.00 0 614
glibc-simple rp 01.88 2996 1.88 0.00 0 612
glibc-simple rp 01.91 2996 1.91 0.00 0 613
glibc-simple rp 01.93 2996 1.93 0.00 0 614
glibc-thread rp 1.173 15164 23.72 0.01 9 3624
glibc-thread rp 1.275 15164 21.75 0.02 10 3626
glibc-thread rp 1.279 15164 21.71 0.01 9 3625
glibc-thread rp 1.281 15164 21.70 0.02 8 3629
glibc-thread rp 1.285 15168 21.68 0.03 9 3627
glibc-thread rp 1.276 15164 21.70 0.00 9 3626
glibc-thread rp 1.279 15164 21.67 0.00 10 3625
glibc-thread rp 1.281 15152 21.68 0.04 8 3631
glibc-thread rp 1.287 15168 21.66 0.05 9 3626
glibc-thread rp 1.280 15168 21.66 0.03 9 3627
rocksdb rp 03.88 94612 3.31 0.88 0 20807
rocksdb rp 03.80 94732 3.24 0.87 0 20837
rocksdb rp 03.75 94708 3.22 0.85 0 20836
rocksdb rp 03.77 94688 3.23 0.86 0 20818
rocksdb rp 03.74 93644 3.20 0.85 0 20566
rocksdb rp 03.74 94700 3.28 0.77 0 20826
rocksdb rp 03.73 93616 3.21 0.83 1 20560
rocksdb rp 03.74 93628 3.14 0.93 0 20554
rocksdb rp 03.75 93688 3.26 0.80 0 20570
rocksdb rp 03.70 93740 3.13 0.88 0 20587
real 10m24.641s
user 32m36.512s
sys 1m9.004s
```
#### 部分使用 `MAP_POPULATE` 的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
cfrac rp 03.03 4068 3.03 0.00 0 744
cfrac rp 03.01 4012 3.01 0.00 0 744
cfrac rp 03.02 4064 3.02 0.00 0 745
cfrac rp 03.03 4020 3.03 0.00 0 746
cfrac rp 03.05 3992 3.04 0.00 0 742
cfrac rp 03.02 4020 3.02 0.00 0 743
cfrac rp 03.03 3992 3.03 0.00 0 743
cfrac rp 03.01 4040 3.01 0.00 0 744
cfrac rp 03.02 3988 3.01 0.00 0 742
cfrac rp 03.02 3996 3.02 0.00 0 744
espresso rp 03.21 7888 3.19 0.01 0 1776
espresso rp 03.14 7888 3.13 0.00 0 1777
espresso rp 03.16 7888 3.15 0.00 0 1779
espresso rp 03.17 7888 3.16 0.01 0 1778
espresso rp 03.16 7888 3.16 0.00 0 1779
espresso rp 03.14 7888 3.14 0.00 0 1777
espresso rp 03.17 7888 3.15 0.02 0 1777
espresso rp 03.13 7888 3.12 0.00 0 1777
espresso rp 03.19 7888 3.18 0.00 0 1776
espresso rp 03.16 7888 3.15 0.00 0 1777
barnes rp 02.41 504656 2.32 0.08 0 125756
barnes rp 02.43 504660 2.34 0.08 0 125756
barnes rp 02.41 504656 2.33 0.08 0 125756
barnes rp 02.43 504596 2.34 0.08 0 125756
barnes rp 02.42 504596 2.33 0.08 0 125755
barnes rp 02.42 504660 2.34 0.08 0 125754
barnes rp 02.43 504516 2.34 0.08 0 125752
barnes rp 02.42 504524 2.33 0.08 0 125753
barnes rp 02.41 504520 2.32 0.08 0 125753
barnes rp 02.42 504592 2.34 0.08 0 125755
redis rp 2.560 9968 0.09 0.04 0 1795
redis rp 2.579 9980 0.11 0.01 0 1793
redis rp 2.560 9996 0.11 0.02 0 1796
redis rp 2.579 9952 0.12 0.01 0 1795
redis rp 2.579 10000 0.11 0.02 0 1795
redis rp 2.520 9968 0.10 0.02 0 1797
redis rp 2.619 10036 0.11 0.02 0 1795
redis rp 3.160 9964 0.10 0.06 0 1794
redis rp 2.700 9964 0.12 0.01 0 1793
redis rp 2.700 10032 0.12 0.01 0 1796
larsonN-sized rp 3.559 143216 53.79 0.34 0 35280
larsonN-sized rp 3.543 144664 54.36 0.16 0 35638
larsonN-sized rp 3.525 145772 54.32 0.26 0 35918
larsonN-sized rp 3.544 147620 54.20 0.23 0 36378
larsonN-sized rp 3.592 147380 54.43 0.15 0 36317
larsonN-sized rp 3.540 149304 54.46 0.16 1 36803
larsonN-sized rp 3.526 145324 54.30 0.20 0 35806
larsonN-sized rp 3.590 147836 54.14 0.29 0 36434
larsonN-sized rp 3.535 145068 54.33 0.18 0 35734
larsonN-sized rp 3.515 143020 54.34 0.20 0 35230
mstressN rp 00.84 446672 5.19 0.66 0 294366
mstressN rp 00.84 458188 5.13 0.71 0 297228
mstressN rp 00.84 445188 5.15 0.70 0 294131
mstressN rp 00.84 430436 5.24 0.67 0 290342
mstressN rp 00.84 452616 5.23 0.63 0 295845
mstressN rp 00.84 432192 5.17 0.66 0 290810
mstressN rp 00.85 445976 5.21 0.68 0 294409
mstressN rp 00.83 468344 5.26 0.67 0 299776
mstressN rp 00.82 462600 5.21 0.70 0 298323
mstressN rp 00.82 443196 5.22 0.68 0 293527
rptestN rp .674 111472 1.47 0.23 0 27564
rptestN rp .624 110228 1.38 0.22 0 27250
rptestN rp .634 110176 1.38 0.20 0 27252
rptestN rp .657 110692 1.37 0.25 0 27386
rptestN rp .665 110660 1.40 0.22 0 27363
rptestN rp .638 109552 1.38 0.24 0 27086
rptestN rp .616 114868 1.30 0.22 0 28418
rptestN rp .663 112136 1.50 0.11 1 27731
rptestN rp .672 110580 1.44 0.23 0 27342
rptestN rp .627 110476 1.37 0.24 0 27317
gs rp 00.75 43964 0.73 0.02 0 7792
gs rp 00.76 43900 0.75 0.01 0 7791
gs rp 00.76 44000 0.75 0.01 0 7792
gs rp 00.75 44008 0.73 0.02 0 7792
gs rp 00.76 43884 0.74 0.01 0 7790
gs rp 00.76 43964 0.75 0.01 0 7795
gs rp 00.75 43928 0.73 0.01 0 7792
gs rp 00.77 43972 0.75 0.02 0 7793
gs rp 00.76 43996 0.74 0.02 0 7790
gs rp 00.77 43960 0.76 0.01 0 7792
lua rp 03.40 76868 3.12 0.28 0 201329
lua rp 03.48 76816 3.08 0.39 0 201335
lua rp 03.43 76876 3.17 0.25 0 201303
lua rp 03.45 76816 3.15 0.29 0 201370
lua rp 03.45 76832 3.12 0.32 0 201295
lua rp 03.43 76824 3.15 0.28 0 201442
lua rp 03.45 76860 3.16 0.28 0 201343
lua rp 03.46 76880 3.15 0.30 0 201374
lua rp 03.45 76756 3.14 0.30 0 201303
lua rp 03.45 76820 3.15 0.29 0 201416
alloc-test1 rp 02.80 12888 2.80 0.00 0 2991
alloc-test1 rp 02.73 12896 2.73 0.00 0 2988
alloc-test1 rp 02.71 12904 2.71 0.00 0 2990
alloc-test1 rp 02.74 12892 2.74 0.00 0 2988
alloc-test1 rp 02.75 12912 2.75 0.00 0 2989
alloc-test1 rp 02.74 12920 2.74 0.00 0 2992
alloc-test1 rp 02.71 12892 2.71 0.00 0 2991
alloc-test1 rp 02.73 12896 2.73 0.00 0 2991
alloc-test1 rp 02.72 12896 2.72 0.00 0 2989
alloc-test1 rp 02.73 12900 2.72 0.00 0 2989
alloc-testN rp 03.18 20244 37.08 0.04 0 4609
alloc-testN rp 03.18 20268 37.46 0.02 0 4611
alloc-testN rp 03.23 20256 37.42 0.04 0 4608
alloc-testN rp 03.24 20248 37.85 0.01 0 4608
alloc-testN rp 03.25 20268 37.66 0.09 0 4613
alloc-testN rp 03.23 20240 37.65 0.05 0 4610
alloc-testN rp 03.26 20240 37.66 0.01 0 4609
alloc-testN rp 03.24 20240 37.75 0.05 0 4608
alloc-testN rp 03.26 20256 37.67 0.14 0 4613
alloc-testN rp 03.26 20248 37.78 0.07 0 4612
sh6benchN rp 00.21 251380 2.24 0.08 0 62646
sh6benchN rp 00.22 251380 2.25 0.07 0 62647
sh6benchN rp 00.21 251380 2.19 0.11 0 62647
sh6benchN rp 00.22 251380 2.16 0.13 0 62648
sh6benchN rp 00.22 251380 2.32 0.06 0 62647
sh6benchN rp 00.23 251380 2.33 0.10 0 62648
sh6benchN rp 00.21 251380 2.23 0.08 0 62648
sh6benchN rp 00.22 251380 2.27 0.10 0 62647
sh6benchN rp 00.22 251380 2.20 0.10 0 62647
sh6benchN rp 00.22 251380 2.24 0.09 0 62648
sh8benchN rp 00.53 157528 5.58 0.04 0 39254
sh8benchN rp 00.52 156704 5.52 0.05 0 39044
sh8benchN rp 00.54 163304 5.88 0.05 0 40689
sh8benchN rp 00.53 159672 5.54 0.05 0 39777
sh8benchN rp 00.53 159072 5.65 0.03 0 39650
sh8benchN rp 00.53 157144 5.53 0.04 0 39157
sh8benchN rp 00.53 156280 5.53 0.05 0 38930
sh8benchN rp 00.53 163768 5.58 0.07 0 40805
sh8benchN rp 00.52 159928 5.58 0.03 0 39842
sh8benchN rp 00.52 160016 5.44 0.05 0 39876
xmalloc-testN rp 0.471 68816 46.25 4.60 1 17017
xmalloc-testN rp 0.462 75728 42.69 4.05 0 18745
xmalloc-testN rp 0.542 79888 42.11 4.11 1 19785
xmalloc-testN rp 0.424 75988 43.07 4.09 0 18812
xmalloc-testN rp 0.449 81808 42.74 3.99 1 20267
xmalloc-testN rp 0.483 74640 42.56 4.15 2 18476
xmalloc-testN rp 0.364 69584 44.29 3.74 1 17210
xmalloc-testN rp 0.433 76752 43.22 4.03 1 19002
xmalloc-testN rp 0.458 80404 43.02 3.96 1 19914
xmalloc-testN rp 0.527 86864 40.50 3.63 1 21528
cache-scratch1 rp 00.94 4932 0.94 0.00 0 568
cache-scratch1 rp 00.93 4876 0.92 0.00 0 566
cache-scratch1 rp 00.91 4896 0.91 0.00 0 568
cache-scratch1 rp 00.91 4908 0.91 0.00 0 568
cache-scratch1 rp 00.92 4856 0.91 0.00 0 568
cache-scratch1 rp 00.93 4860 0.93 0.00 0 567
cache-scratch1 rp 00.91 4908 0.91 0.00 0 568
cache-scratch1 rp 00.92 4928 0.92 0.00 0 566
cache-scratch1 rp 00.93 4876 0.93 0.00 0 566
cache-scratch1 rp 00.92 4880 0.92 0.00 0 568
cache-scratchN rp 00.19 4884 2.26 0.00 0 592
cache-scratchN rp 00.19 4900 2.28 0.00 0 590
cache-scratchN rp 00.19 4940 2.27 0.00 0 589
cache-scratchN rp 00.19 4892 2.28 0.00 0 589
cache-scratchN rp 00.20 4872 2.28 0.00 0 590
cache-scratchN rp 00.19 4952 2.29 0.00 0 589
cache-scratchN rp 00.19 4956 2.29 0.00 0 591
cache-scratchN rp 00.19 4920 2.29 0.00 0 590
cache-scratchN rp 00.19 4960 2.29 0.00 0 590
cache-scratchN rp 00.20 4940 2.30 0.00 0 588
glibc-simple rp 01.99 2996 1.98 0.00 0 612
glibc-simple rp 01.93 3000 1.93 0.00 0 615
glibc-simple rp 01.86 2996 1.85 0.00 0 612
glibc-simple rp 01.85 2996 1.85 0.00 0 613
glibc-simple rp 01.86 2996 1.86 0.00 0 611
glibc-simple rp 01.86 2996 1.86 0.00 0 611
glibc-simple rp 01.86 2996 1.85 0.00 0 614
glibc-simple rp 01.90 2996 1.89 0.00 0 612
glibc-simple rp 01.85 2996 1.85 0.00 0 612
glibc-simple rp 01.89 2996 1.88 0.00 0 612
glibc-thread rp 1.153 15164 23.74 0.01 10 3627
glibc-thread rp 1.254 15164 21.65 0.09 9 3625
glibc-thread rp 1.264 15164 21.61 0.08 9 3627
glibc-thread rp 1.262 15164 21.63 0.04 8 3629
glibc-thread rp 1.265 15164 21.68 0.00 8 3629
glibc-thread rp 1.263 15164 21.66 0.03 9 3628
glibc-thread rp 1.268 15164 21.68 0.00 8 3628
glibc-thread rp 1.265 15164 21.71 0.00 9 3625
glibc-thread rp 1.263 15164 21.68 0.00 9 3628
glibc-thread rp 1.276 15164 21.66 0.03 9 3627
rocksdb rp 03.88 94740 3.32 0.88 0 20833
rocksdb rp 03.75 94620 3.15 0.91 0 20811
rocksdb rp 03.73 94740 3.23 0.82 0 20830
rocksdb rp 03.67 94716 3.05 0.94 0 20827
rocksdb rp 03.72 94700 3.13 0.90 0 20831
rocksdb rp 03.70 93728 3.10 0.92 0 20572
rocksdb rp 03.76 93588 3.18 0.89 0 20551
rocksdb rp 03.74 94704 3.25 0.80 0 20825
rocksdb rp 03.77 94704 3.20 0.89 0 20826
rocksdb rp 03.71 94656 3.19 0.84 0 20822
real 10m24.577s
user 32m28.702s
sys 1m7.993s
```
#### 全部使用 `MAP_POPULATE` 的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
cfrac rp 03.02 6836 3.02 0.00 0 1570
cfrac rp 03.05 6828 3.05 0.00 0 1569
cfrac rp 03.03 6812 3.03 0.00 0 1567
cfrac rp 03.07 6820 3.06 0.00 0 1570
cfrac rp 03.01 6828 3.01 0.00 0 1570
cfrac rp 03.03 6812 3.02 0.00 0 1570
cfrac rp 03.05 6820 3.04 0.00 0 1568
cfrac rp 03.04 6824 3.04 0.00 0 1568
cfrac rp 03.03 6804 3.03 0.00 0 1565
cfrac rp 03.07 6820 3.06 0.00 0 1567
espresso rp 03.17 15276 3.15 0.02 0 3638
espresso rp 03.17 15276 3.16 0.00 0 3637
espresso rp 03.16 15276 3.14 0.02 0 3637
espresso rp 03.17 15276 3.16 0.01 0 3637
espresso rp 03.14 15276 3.12 0.01 0 3638
espresso rp 03.17 15276 3.15 0.02 0 3637
espresso rp 03.14 15276 3.14 0.00 0 3637
espresso rp 03.17 15276 3.16 0.01 0 3635
espresso rp 03.17 15280 3.16 0.01 0 3639
espresso rp 03.18 15276 3.16 0.00 0 3637
barnes rp 02.42 508408 2.34 0.08 0 126792
barnes rp 02.43 508484 2.34 0.08 0 126796
barnes rp 02.43 508408 2.35 0.08 0 126793
barnes rp 02.43 508436 2.33 0.09 0 126796
barnes rp 02.41 508480 2.32 0.08 0 126797
barnes rp 02.42 508516 2.33 0.08 0 126796
barnes rp 02.42 508412 2.34 0.07 0 126794
barnes rp 02.44 508436 2.36 0.08 0 126795
barnes rp 04.51 508428 4.43 0.08 0 126795
barnes rp 02.45 508480 2.36 0.08 0 126796
redis rp 2.660 17704 0.12 0.01 0 3724
redis rp 2.680 17672 0.12 0.02 0 3725
redis rp 2.579 17664 0.10 0.03 0 3726
redis rp 2.619 17704 0.12 0.01 0 3726
redis rp 2.720 17732 0.12 0.01 0 3726
redis rp 2.640 17664 0.11 0.02 0 3723
redis rp 3.180 17676 0.12 0.03 0 3724
redis rp 2.560 17688 0.12 0.00 0 3727
redis rp 2.700 17716 0.12 0.01 0 3724
redis rp 2.579 17696 0.10 0.02 0 3724
larsonN-sized rp 3.470 186084 54.30 0.37 0 46132
larsonN-sized rp 3.535 186200 54.31 0.34 0 46020
larsonN-sized rp 3.493 177636 54.52 0.19 0 44011
larsonN-sized rp 3.544 185612 54.40 0.19 0 46011
larsonN-sized rp 3.510 185832 54.19 0.20 0 46070
larsonN-sized rp 3.500 173432 54.39 0.19 0 42961
larsonN-sized rp 3.504 169260 54.28 0.14 0 41918
larsonN-sized rp 3.498 181764 54.16 0.14 0 45045
larsonN-sized rp 3.514 177488 54.32 0.19 0 43979
larsonN-sized rp 3.566 172972 54.38 0.16 1 42858
mstressN rp 00.87 499184 5.15 0.62 0 307486
mstressN rp 00.86 486440 5.14 0.59 0 304331
mstressN rp 00.87 486640 5.13 0.58 0 304362
mstressN rp 00.86 445036 5.13 0.58 0 293950
mstressN rp 00.86 461480 5.11 0.59 0 298128
mstressN rp 00.86 465840 5.14 0.58 0 299151
mstressN rp 00.86 494760 5.15 0.60 0 306445
mstressN rp 00.85 486700 5.20 0.60 0 304338
mstressN rp 00.85 515828 5.08 0.62 0 311616
mstressN rp 00.85 486640 5.13 0.61 0 304360
rptestN rp .774 244920 1.40 0.23 0 60921
rptestN rp .666 224104 1.24 0.16 0 55717
rptestN rp .645 203300 1.24 0.18 0 50518
rptestN rp .704 228256 1.32 0.20 0 56756
rptestN rp .653 211640 1.22 0.17 0 52596
rptestN rp .638 207464 1.25 0.14 0 51554
rptestN rp .718 240748 1.31 0.19 0 59879
rptestN rp .715 224120 1.31 0.18 0 55719
rptestN rp .652 207472 1.18 0.20 0 51561
rptestN rp .718 219948 1.31 0.24 0 54676
gs rp 00.75 49952 0.72 0.02 0 9334
gs rp 00.76 49912 0.74 0.02 0 9331
gs rp 00.75 49916 0.73 0.02 0 9336
gs rp 00.76 49928 0.75 0.01 0 9334
gs rp 00.76 49964 0.75 0.00 0 9333
gs rp 00.77 49900 0.74 0.02 0 9334
gs rp 00.76 49908 0.74 0.02 0 9335
gs rp 00.75 49880 0.73 0.02 0 9331
gs rp 00.76 49808 0.73 0.02 0 9332
gs rp 00.76 49996 0.74 0.01 0 9333
lua rp 03.57 93160 3.10 0.47 0 389684
lua rp 03.61 93156 3.17 0.43 0 389664
lua rp 03.59 93152 3.18 0.40 0 389690
lua rp 03.61 93152 3.22 0.38 0 389674
lua rp 03.62 93148 3.16 0.46 0 389681
lua rp 03.60 93096 3.17 0.42 0 389660
lua rp 03.62 93148 3.17 0.44 0 389680
lua rp 03.63 93148 3.14 0.48 0 389692
lua rp 03.59 93148 3.18 0.40 0 389686
lua rp 03.61 93148 3.20 0.40 0 389673
alloc-test1 rp 02.82 20280 2.81 0.01 0 4774
alloc-test1 rp 02.72 20296 2.71 0.00 0 4774
alloc-test1 rp 02.75 20280 2.74 0.00 0 4775
alloc-test1 rp 02.69 20296 2.68 0.00 0 4776
alloc-test1 rp 02.68 20304 2.68 0.00 0 4774
alloc-test1 rp 02.70 20304 2.69 0.00 0 4773
alloc-test1 rp 02.72 20308 2.70 0.01 0 4773
alloc-test1 rp 02.72 20296 2.72 0.00 0 4774
alloc-test1 rp 02.72 20296 2.72 0.00 0 4776
alloc-test1 rp 02.71 20280 2.71 0.00 0 4776
alloc-testN rp 03.19 108420 37.08 0.05 0 26647
alloc-testN rp 03.22 108448 37.37 0.07 0 26648
alloc-testN rp 03.23 108416 37.31 0.05 0 26647
alloc-testN rp 03.28 108412 37.90 0.04 0 26646
alloc-testN rp 03.24 108388 37.38 0.05 0 26647
alloc-testN rp 03.23 108480 37.38 0.06 0 26648
alloc-testN rp 03.26 108452 37.79 0.07 0 26648
alloc-testN rp 03.40 108436 37.81 0.07 0 26646
alloc-testN rp 03.44 108436 37.76 0.02 0 26645
alloc-testN rp 03.26 108392 37.76 0.05 0 26648
sh6benchN rp 00.25 307548 2.29 0.08 0 76729
sh6benchN rp 00.24 307548 2.43 0.07 0 76730
sh6benchN rp 00.25 307532 2.45 0.06 0 76730
sh6benchN rp 00.24 307548 2.41 0.06 0 76730
sh6benchN rp 00.23 307508 2.34 0.06 0 76729
sh6benchN rp 00.24 307548 2.47 0.05 0 76728
sh6benchN rp 00.23 307548 2.36 0.05 0 76728
sh6benchN rp 00.25 307548 2.46 0.05 0 76730
sh6benchN rp 00.23 307508 2.31 0.08 0 76730
sh6benchN rp 00.23 307548 2.31 0.09 0 76729
sh8benchN rp 00.56 294240 5.87 0.07 0 73400
sh8benchN rp 00.58 298360 6.01 0.05 0 74436
sh8benchN rp 00.58 298376 5.99 0.06 0 74436
sh8benchN rp 00.57 298360 6.13 0.06 0 74436
sh8benchN rp 00.57 302560 6.00 0.08 0 75476
sh8benchN rp 00.56 294240 5.93 0.05 0 73397
sh8benchN rp 00.58 298344 5.96 0.07 0 74437
sh8benchN rp 00.56 294208 5.87 0.05 0 73396
sh8benchN rp 00.56 294192 5.94 0.09 0 73396
sh8benchN rp 00.55 298360 5.89 0.05 0 74438
xmalloc-testN rp 0.512 108008 45.63 4.94 3 26813
xmalloc-testN rp 0.519 112180 42.11 4.43 1 27858
xmalloc-testN rp 0.451 108016 42.61 4.15 3 26816
xmalloc-testN rp 0.511 120488 42.17 4.21 3 29932
xmalloc-testN rp 0.523 108016 41.99 4.34 3 26813
xmalloc-testN rp 0.518 108008 42.29 4.13 1 26813
xmalloc-testN rp 0.525 112152 42.10 4.16 3 27857
xmalloc-testN rp 0.453 120472 42.88 4.15 2 29933
xmalloc-testN rp 0.468 116340 42.71 3.93 7 28894
xmalloc-testN rp 0.545 108016 42.19 4.12 2 26817
cache-scratch1 rp 00.94 7756 0.93 0.00 0 1620
cache-scratch1 rp 00.96 7756 0.96 0.00 0 1622
cache-scratch1 rp 00.95 7732 0.95 0.00 0 1620
cache-scratch1 rp 00.91 7728 0.91 0.00 0 1622
cache-scratch1 rp 00.93 7732 0.93 0.00 0 1621
cache-scratch1 rp 00.92 7756 0.92 0.00 0 1622
cache-scratch1 rp 00.91 7744 0.91 0.00 0 1622
cache-scratch1 rp 00.92 7760 0.92 0.00 0 1623
cache-scratch1 rp 00.92 7752 0.92 0.00 0 1620
cache-scratch1 rp 00.92 7732 0.92 0.00 0 1621
cache-scratchN rp 00.19 8668 2.27 0.00 0 1644
cache-scratchN rp 00.19 8692 2.28 0.00 0 1644
cache-scratchN rp 00.19 8692 2.28 0.00 0 1642
cache-scratchN rp 00.19 8656 2.29 0.00 0 1642
cache-scratchN rp 00.19 8668 2.28 0.00 0 1643
cache-scratchN rp 00.19 8660 2.28 0.00 0 1643
cache-scratchN rp 00.19 8684 2.28 0.00 0 1642
cache-scratchN rp 00.19 8664 2.29 0.00 0 1643
cache-scratchN rp 00.19 8668 2.28 0.00 0 1643
cache-scratchN rp 00.19 8664 2.29 0.00 0 1644
glibc-simple rp 01.92 10708 1.91 0.01 0 2593
glibc-simple rp 01.93 10708 1.93 0.00 0 2592
glibc-simple rp 01.96 10704 1.96 0.00 0 2594
glibc-simple rp 01.96 10708 1.95 0.00 0 2594
glibc-simple rp 01.91 10708 1.91 0.00 0 2594
glibc-simple rp 01.96 10708 1.96 0.00 0 2595
glibc-simple rp 01.91 10708 1.91 0.00 0 2595
glibc-simple rp 01.93 10704 1.92 0.00 0 2594
glibc-simple rp 01.90 10688 1.90 0.00 0 2594
glibc-simple rp 01.89 10708 1.89 0.00 0 2595
glibc-thread rp 1.177 106896 23.57 0.07 11 26578
glibc-thread rp 1.280 106896 21.58 0.07 9 26579
glibc-thread rp 1.284 106896 21.53 0.07 8 26578
glibc-thread rp 1.281 106900 21.53 0.07 10 26579
glibc-thread rp 1.288 106896 21.55 0.06 9 26578
glibc-thread rp 1.286 106896 21.52 0.08 9 26579
glibc-thread rp 1.287 106896 21.56 0.06 9 26579
glibc-thread rp 1.293 106896 21.57 0.05 8 26579
glibc-thread rp 1.288 106896 21.58 0.03 10 26581
glibc-thread rp 1.285 106896 21.53 0.09 8 26579
rocksdb rp 03.88 140080 3.33 0.88 0 32150
rocksdb rp 03.77 140076 3.16 0.93 0 32150
rocksdb rp 03.74 140036 3.19 0.86 0 32151
rocksdb rp 03.79 140020 3.17 0.92 0 32151
rocksdb rp 03.76 140008 3.14 0.93 0 32150
rocksdb rp 03.77 140056 3.18 0.90 0 32150
rocksdb rp 03.74 140060 3.10 0.95 0 32153
rocksdb rp 03.76 140044 3.20 0.86 0 32153
rocksdb rp 03.75 140076 3.23 0.83 0 32153
rocksdb rp 03.73 140040 3.05 0.99 0 32150
real 10m30.664s
user 32m30.087s
sys 1m10.958s
```
---
### 測試 v2
在這次的測試中,使用了 perf 這個工具來協助測量 minor page-fault ,原本的 mimalloc -bench 測試所提供的僅僅只有 major page-fault ,因此用 perf 執行他們的測試腳本可以更加的準確一些
測試命令為
```shll
$ perf stat -e page-faults,minor-faults,major-faults,instructions,context-switches ../../bench.sh -j=12 -n=20 rp allt
```
#### 原始的版本
```shell
Performance counter stats for '../../bench.sh -j=12 -n=20 rp allt':
15,226,492 page-faults
15,226,157 minor-faults
335 major-faults
21,790,811,517,892 instructions
20,492,454 context-switches
1241.559631901 seconds time elapsed
4095.979562000 seconds user
198.381062000 seconds sys
```
#### 部份使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -j=12 -n=20 rp allt':
10,774,036 page-faults
10,773,726 minor-faults
310 major-faults
21,781,457,800,834 instructions
18,838,914 context-switches
1240.991562898 seconds time elapsed
4088.139776000 seconds user
186.955651000 seconds sys
```
#### 全部使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -j=12 -n=20 rp allt':
3,110,504 page-faults
3,110,176 minor-faults
328 major-faults
21,103,286,351,616 instructions
18,772,386 context-switches
1251.572957427 seconds time elapsed
3896.964244000 seconds user
180.793281000 seconds sys
```
---
## mimalloc-bench ( arm64 )
### 測試 v1
目前使用的設備 m1 macbook 搭配 docker 上跑 ubuntu 22.04 ( 6 cores, 6 GB memory)
#### 原始的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
cfrac sys 03.73 2696 3.72 0.01 0 394
cfrac rp 03.28 3468 3.28 0.00 0 708
cfrac mi 03.18 2740 3.17 0.00 0 337
cfrac tc 03.25 7652 3.24 0.01 0 1331
espresso sys 03.86 2264 3.85 0.00 0 297
espresso rp 03.42 7828 3.40 0.02 0 1797
espresso mi 03.41 3920 3.39 0.01 0 1306
espresso tc 03.40 8352 3.39 0.01 0 1487
barnes sys 01.87 57864 1.82 0.05 0 16529
barnes rp 01.84 59096 1.81 0.02 0 16894
barnes mi 01.85 58008 1.82 0.02 0 16541
barnes tc 01.84 63048 1.81 0.03 0 17523
redis sys 5.339 7224 0.24 0.05 0 1286
redis rp 4.760 8900 0.21 0.06 0 2788
redis mi 4.839 7052 0.22 0.05 0 1257
redis tc 4.860 12556 0.23 0.05 0 2430
larsonN-sized sys 7.663 52292 29.75 0.15 0 12567
larsonN-sized rp 5.258 70708 29.82 0.13 0 17281
larsonN-sized mi 4.605 84836 29.82 0.15 0 20615
larsonN-sized tc 4.631 56132 29.84 0.15 0 13414
mstressN sys 00.55 162360 0.91 0.51 0 145863
mstressN rp 00.36 202788 0.74 0.32 0 140758
mstressN mi 00.25 209868 0.71 0.14 0 52302
mstressN tc 00.27 99372 0.84 0.10 0 24683
rptestN sys 1.396 21460 1.21 1.46 0 11059
rptestN rp .500 72816 0.91 1.07 0 18038
rptestN mi .575 62360 0.89 1.21 0 31362
rptestN tc .566 42640 1.02 1.02 1 10075
gs sys 00.72 38532 0.67 0.04 0 7258
gs rp 00.70 41232 0.68 0.02 0 7588
gs mi 00.69 41088 0.67 0.02 0 6971
gs tc 00.69 44896 0.66 0.03 0 7905
lua sys 03.54 58824 2.97 0.57 0 157012
lua rp 03.55 77756 2.88 0.67 0 214069
lua mi 03.45 71476 2.88 0.57 0 160210
lua tc 03.72 69788 2.96 0.76 0 266691
alloc-test1 sys 03.43 12184 3.43 0.00 0 2885
alloc-test1 rp 03.37 12372 3.36 0.00 0 2949
alloc-test1 mi 02.86 12256 2.86 0.00 0 2527
alloc-test1 tc 02.89 15544 2.88 0.00 0 3315
alloc-testN sys 04.17 13656 24.84 0.02 0 3218
alloc-testN rp 03.64 16496 21.71 0.01 0 3793
alloc-testN mi 03.50 13560 20.88 0.01 0 2864
alloc-testN tc 03.63 17020 21.54 0.01 0 3686
sh6benchN sys 01.56 340860 4.72 0.74 0 84959
sh6benchN rp 00.31 247392 1.45 0.12 0 61714
sh6benchN mi 00.27 213248 1.30 0.11 0 53040
sh6benchN tc 00.33 218916 1.66 0.14 0 54157
Command exited with non-zero status 88
sh8benchN sys 02.90 166640 15.14 0.65 0 245965
Command exited with non-zero status 88
sh8benchN rp 00.70 149612 3.70 0.08 0 37304
Command exited with non-zero status 88
sh8benchN mi 00.63 132704 3.34 0.07 0 32977
Command exited with non-zero status 88
sh8benchN tc 06.40 127360 19.13 14.78 0 31253
xmalloc-testN sys 2.571 60880 26.62 1.16 0 87366
xmalloc-testN rp 0.333 113020 28.76 0.61 0 28099
xmalloc-testN mi 0.468 79876 28.60 0.54 0 28662
xmalloc-testN tc 7.071 40876 10.45 15.34 0 9622
cache-scratch1 sys 01.20 3140 1.20 0.00 0 174
cache-scratch1 rp 01.20 4308 1.20 0.00 0 527
cache-scratch1 mi 01.20 3424 1.20 0.00 0 191
cache-scratch1 tc 01.20 7144 1.20 0.00 0 1125
cache-scratchN sys 00.29 3204 1.65 0.00 0 191
cache-scratchN rp 00.28 4352 1.63 0.00 0 538
cache-scratchN mi 00.28 3464 1.63 0.00 0 203
cache-scratchN tc 00.28 7184 1.66 0.00 0 1137
glibc-simple sys 02.49 1444 2.48 0.00 0 178
glibc-simple rp 01.57 2644 1.57 0.00 0 588
glibc-simple mi 01.52 1832 1.52 0.00 0 208
glibc-simple tc 01.55 6872 1.54 0.00 0 1206
glibc-thread sys 2.352 2752 11.98 0.00 4 436
glibc-thread rp 1.642 8760 11.93 0.00 3 2053
glibc-thread mi 1.479 3328 11.99 0.00 3 558
glibc-thread tc 2.231 8504 11.99 0.00 1 1558
rocksdb sys 04.30 87244 3.22 1.37 0 36277
rocksdb rp 04.23 89952 3.21 1.27 0 19975
rocksdb mi 04.16 97728 3.18 1.25 0 21740
rocksdb tc 04.14 94032 3.10 1.30 0 20797
larsonN sys 8.430 51016 29.75 0.15 0 12250
larsonN rp 5.421 70976 29.83 0.14 0 17347
larsonN mi 4.692 81660 29.81 0.16 0 19827
larsonN tc 4.738 55380 29.78 0.15 0 13227
malloc-large sys 01.62 533640 0.57 1.04 0 510535
malloc-large rp 14.49 410280 1.35 13.13 0 7784547
malloc-large mi 01.04 780032 0.52 0.51 0 194356
malloc-large tc 00.81 575524 0.50 0.30 0 185027
mleak10 sys 00.15 1660 0.05 0.30 0 6173
mleak10 rp 00.11 2844 0.05 0.24 0 6546
mleak10 mi 00.10 1868 0.05 0.25 0 6193
mleak10 tc 00.11 6900 0.04 0.26 0 7167
mleak100 sys 01.07 1772 0.39 2.61 0 60201
mleak100 rp 01.06 2828 0.44 2.50 0 60556
mleak100 mi 01.07 2100 0.56 2.52 0 60256
mleak100 tc 01.07 6892 0.44 2.56 1 61168
rbstress1 sys 03.16 127888 3.07 0.08 0 31817
rbstress1 rp 02.97 134132 2.86 0.10 0 32855
rbstress1 mi 02.83 116432 2.77 0.05 0 32594
rbstress1 tc 02.91 115844 2.84 0.06 0 27686
rbstressN sys 03.35 123264 3.29 0.06 0 32954
rbstressN rp 03.08 151232 2.99 0.09 0 38004
rbstressN mi 03.00 130296 2.93 0.07 0 33464
rbstressN tc 03.10 95560 3.05 0.05 0 22631
cache-thrash1 sys 01.20 3140 1.20 0.00 0 176
cache-thrash1 rp 01.20 4324 1.20 0.00 0 526
cache-thrash1 mi 01.20 3424 1.20 0.00 0 193
cache-thrash1 tc 01.20 7140 1.20 0.00 0 1124
cache-thrashN sys 00.29 3180 1.68 0.00 0 186
cache-thrashN rp 00.30 4336 1.66 0.00 0 540
cache-thrashN mi 00.30 3460 1.66 0.00 0 201
cache-thrashN tc 00.30 7168 1.68 0.00 0 1137
```
#### 部分使用 `MAP_POPULATE` 的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
cfrac sys 03.74 2688 3.73 0.00 0 392
cfrac rp 03.27 3472 3.27 0.00 0 708
cfrac mi 03.18 2744 3.17 0.00 0 337
cfrac tc 03.27 7652 3.26 0.01 0 1329
espresso sys 03.90 2264 3.88 0.02 0 297
espresso rp 03.43 7824 3.41 0.01 0 1796
espresso mi 03.41 3896 3.39 0.01 0 1302
espresso tc 03.41 8356 3.39 0.01 0 1490
barnes sys 01.87 57864 1.82 0.05 0 16530
barnes rp 02.35 503972 1.84 0.50 0 125717
barnes mi 01.89 58004 1.86 0.03 0 16541
barnes tc 01.87 63044 1.84 0.03 0 17521
redis sys 5.239 7240 0.24 0.04 0 1288
redis rp 4.820 8916 0.22 0.05 0 2789
redis mi 4.799 7040 0.22 0.04 0 1258
redis tc 4.920 12576 0.22 0.05 0 2433
larsonN-sized sys 7.637 55528 29.68 0.18 0 13682
larsonN-sized rp 5.256 70076 29.83 0.13 0 17126
larsonN-sized mi 4.845 78932 29.87 0.15 0 19142
larsonN-sized tc 4.481 56888 29.82 0.16 0 13604
mstressN sys 00.46 164472 0.93 0.39 0 125066
mstressN rp 00.35 208104 0.71 0.27 0 143215
mstressN mi 00.25 217160 0.72 0.13 0 54123
mstressN tc 00.26 95920 0.82 0.12 0 23666
rptestN sys 1.391 20456 1.23 1.41 0 10757
rptestN rp .506 74364 0.85 1.14 0 18421
rptestN mi .555 58004 0.97 1.12 0 26548
rptestN tc .511 41812 1.04 0.98 1 9864
gs sys 00.72 38524 0.67 0.05 0 7253
gs rp 00.70 41240 0.67 0.03 0 7589
gs mi 00.70 41120 0.67 0.02 0 6974
gs tc 00.70 44920 0.67 0.02 0 7907
lua sys 03.58 58892 3.04 0.53 0 156843
lua rp 03.58 77772 2.91 0.66 0 214065
lua mi 03.47 71592 2.92 0.55 0 160200
lua tc 03.75 69788 2.94 0.81 0 266693
alloc-test1 sys 03.42 12196 3.41 0.00 0 2887
alloc-test1 rp 03.42 12360 3.42 0.00 0 2950
alloc-test1 mi 02.86 12240 2.86 0.00 0 2528
alloc-test1 tc 02.91 15544 2.90 0.01 0 3315
alloc-testN sys 04.15 13676 24.72 0.02 0 3216
alloc-testN rp 03.65 16500 21.73 0.01 0 3790
alloc-testN mi 03.49 13576 20.83 0.01 0 2864
alloc-testN tc 03.60 16952 21.35 0.01 0 3670
sh6benchN sys 01.43 340852 4.60 0.58 0 84960
sh6benchN rp 00.32 247404 1.43 0.14 0 61716
sh6benchN mi 00.27 213004 1.28 0.12 0 52980
sh6benchN tc 00.35 218552 1.64 0.14 0 54067
Command exited with non-zero status 88
sh8benchN sys 02.95 167476 15.72 0.56 0 188932
Command exited with non-zero status 88
sh8benchN rp 00.72 150440 3.75 0.09 0 37508
Command exited with non-zero status 88
sh8benchN mi 00.63 132788 3.32 0.06 0 32984
Command exited with non-zero status 88
sh8benchN tc 06.47 126140 19.26 15.08 0 30948
xmalloc-testN sys 2.540 62020 26.51 1.21 0 86318
xmalloc-testN rp 0.339 109860 28.61 0.69 1 27314
xmalloc-testN mi 0.471 88732 28.62 0.52 0 30270
xmalloc-testN tc 7.161 40644 10.59 15.15 0 9560
cache-scratch1 sys 01.20 3140 1.20 0.00 0 175
cache-scratch1 rp 01.20 4328 1.20 0.00 0 528
cache-scratch1 mi 01.20 3436 1.20 0.00 0 192
cache-scratch1 tc 01.20 7152 1.20 0.00 0 1125
cache-scratchN sys 00.28 3204 1.63 0.00 0 192
cache-scratchN rp 00.28 4340 1.64 0.00 0 538
cache-scratchN mi 00.28 3440 1.64 0.00 0 202
cache-scratchN tc 00.29 7184 1.64 0.00 0 1136
glibc-simple sys 02.49 1424 2.48 0.00 0 178
glibc-simple rp 01.57 2628 1.57 0.00 0 587
glibc-simple mi 01.51 1832 1.51 0.00 0 208
glibc-simple tc 01.53 6876 1.53 0.00 0 1206
glibc-thread sys 2.423 2752 11.98 0.00 3 436
glibc-thread rp 1.690 8748 11.97 0.00 4 2051
glibc-thread mi 1.522 3328 11.99 0.00 2 560
glibc-thread tc 2.119 8604 11.96 0.00 0 1569
rocksdb sys 04.24 88052 3.25 1.27 0 36319
rocksdb rp 04.15 89980 3.13 1.27 0 19978
rocksdb mi 04.12 97756 3.14 1.25 0 21745
rocksdb tc 04.10 94028 3.11 1.25 0 20799
larsonN sys 8.803 50252 29.73 0.14 0 12611
larsonN rp 5.347 69056 29.84 0.13 0 16871
larsonN mi 4.933 77528 29.87 0.14 0 18786
larsonN tc 4.818 55096 29.78 0.15 0 13156
malloc-large sys 01.39 533636 0.54 0.85 0 510533
malloc-large rp 13.34 411568 0.37 12.96 0 7816549
malloc-large mi 00.99 780032 0.51 0.47 0 194357
malloc-large tc 00.82 573492 0.51 0.31 0 184515
mleak10 sys 00.11 1700 0.03 0.26 0 6183
mleak10 rp 00.10 2840 0.04 0.24 0 6544
mleak10 mi 00.10 1864 0.05 0.25 0 6193
mleak10 tc 00.11 6888 0.03 0.26 0 7164
mleak100 sys 01.07 1764 0.44 2.56 0 60197
mleak100 rp 01.04 2856 0.46 2.46 0 60573
mleak100 mi 01.07 2188 0.57 2.52 0 60273
mleak100 tc 01.07 6908 0.45 2.56 0 61170
rbstress1 sys 03.16 127972 3.09 0.06 0 31837
rbstress1 rp 03.18 163424 2.87 0.31 0 161797
rbstress1 mi 02.84 116436 2.78 0.05 0 32593
rbstress1 tc 02.92 117892 2.86 0.05 0 28199
rbstressN sys 03.25 128852 3.17 0.08 0 34725
rbstressN rp 03.24 181128 2.93 0.31 0 153129
rbstressN mi 02.95 137924 2.88 0.06 0 35649
rbstressN tc 03.02 102676 2.97 0.04 0 24397
cache-thrash1 sys 01.20 3156 1.20 0.00 0 175
cache-thrash1 rp 01.20 4324 1.20 0.00 0 527
cache-thrash1 mi 01.20 3436 1.20 0.00 0 193
cache-thrash1 tc 01.20 7140 1.20 0.00 0 1124
cache-thrashN sys 00.29 3180 1.67 0.00 0 186
cache-thrashN rp 00.29 4352 1.71 0.00 0 540
cache-thrashN mi 00.29 3460 1.67 0.00 0 202
cache-thrashN tc 00.29 7184 1.69 0.00 0 1135
```
---
## perf 測試 mimalloc-bench
### x86-64
#### 所有測試
##### 原本 rpmalloc
```shell
Performance counter stats for '../../bench.sh -n=3 rp larson lean-mathlib malloc-large mleak rbstress cthrash z3 spec spec-bench security':
251,876.59 msec task-clock # 2.398 CPUs utilized
42,231 context-switches # 167.665 /sec
2,842 cpu-migrations # 11.283 /sec
25,428,624 page-faults # 100.957 K/sec
1,056,944,455,193 cycles # 4.196 GHz (84.20%)
12,721,727,797 stalled-cycles-frontend # 1.20% frontend cycles idle (84.24%)
8,720,070,083 stalled-cycles-backend # 0.83% backend cycles idle (84.09%)
1,385,858,877,884 instructions # 1.31 insn per cycle
# 0.01 stalled cycles per insn (84.16%)
209,437,602,984 branches # 831.509 M/sec (84.07%)
1,003,012,411 branch-misses # 0.48% of all branches (84.18%)
105.031148827 seconds time elapsed
194.266879000 seconds user
35.449753000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -n=3 rp larson lean-mathlib malloc-large mleak rbstress cthrash z3 spec spec-bench security':
254,297.43 msec task-clock # 2.713 CPUs utilized
43,018 context-switches # 169.164 /sec
2,375 cpu-migrations # 9.339 /sec
2,047,877 page-faults # 8.053 K/sec
1,053,405,534,479 cycles # 4.142 GHz (84.16%)
14,002,160,267 stalled-cycles-frontend # 1.33% frontend cycles idle (84.15%)
12,100,289,711 stalled-cycles-backend # 1.15% backend cycles idle (84.23%)
1,465,843,355,831 instructions # 1.39 insn per cycle
# 0.01 stalled cycles per insn (84.19%)
214,771,092,232 branches # 844.567 M/sec (84.17%)
1,019,806,619 branch-misses # 0.47% of all branches (84.17%)
93.731708160 seconds time elapsed
211.979468000 seconds user
22.169901000 seconds sys
```
#### malloc-large 測試
##### 原本 rpmalloc
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
malloc-large rp 10.67 410772 0.92 9.73 0 7784584
malloc-large rp 10.59 410764 0.74 9.83 0 7784585
malloc-large rp 10.57 410772 0.97 9.58 0 7784583
Performance counter stats for '../../bench.sh -n=3 rp malloc-large':
31,841.26 msec task-clock # 0.999 CPUs utilized
3,650 context-switches # 114.631 /sec
902 cpu-migrations # 28.328 /sec
23,358,679 page-faults # 733.598 K/sec
144,921,734,914 cycles # 4.551 GHz (83.34%)
166,567,929 stalled-cycles-frontend # 0.11% frontend cycles idle (83.35%)
13,592,631,272 stalled-cycles-backend # 9.38% backend cycles idle (83.34%)
117,114,756,190 instructions # 0.81 insn per cycle
# 0.12 stalled cycles per insn (83.34%)
19,518,553,480 branches # 612.996 M/sec (83.33%)
63,827,983 branch-misses # 0.33% of all branches (83.34%)
31.863487556 seconds time elapsed
2.679727000 seconds user
29.159038000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
malloc-large rp 06.77 412032 1.59 5.17 0 7816586
malloc-large rp 06.72 412044 1.53 5.17 0 7816584
malloc-large rp 06.69 412052 1.59 5.09 0 7816586
Performance counter stats for '../../bench.sh -n=3 rp malloc-large':
20,189.78 msec task-clock # 0.999 CPUs utilized
2,365 context-switches # 117.138 /sec
592 cpu-migrations # 29.322 /sec
6,653 page-faults # 329.523 /sec
91,308,364,156 cycles # 4.523 GHz (83.37%)
61,869,447 stalled-cycles-frontend # 0.07% frontend cycles idle (83.32%)
12,302,043,444 stalled-cycles-backend # 13.47% backend cycles idle (83.33%)
126,075,131,317 instructions # 1.38 insn per cycle
# 0.10 stalled cycles per insn (83.32%)
19,999,719,661 branches # 990.586 M/sec (83.39%)
15,528,823 branch-misses # 0.08% of all branches (83.34%)
20.205873066 seconds time elapsed
4.732901000 seconds user
15.455440000 seconds sys
```
#### 除了 malloc-large 以外的測試
##### 原本 rpmalloc
```shell
Performance counter stats for '../../bench.sh -n=3 rp larson lean-mathlib mleak rbstress cthrash z3 spec spec-bench security allt':
838,529.47 msec task-clock # 3.196 CPUs utilized
2,260,203 context-switches # 2.695 K/sec
337,454 cpu-migrations # 402.435 /sec
4,370,064 page-faults # 5.212 K/sec
3,439,780,021,279 cycles # 4.102 GHz (83.80%)
47,218,822,205 stalled-cycles-frontend # 1.37% frontend cycles idle (83.77%)
14,183,105,502 stalled-cycles-backend # 0.41% backend cycles idle (83.83%)
4,390,808,936,185 instructions # 1.28 insn per cycle
# 0.01 stalled cycles per insn (83.86%)
690,709,112,317 branches # 823.715 M/sec (83.84%)
16,901,343,292 branch-misses # 2.45% of all branches (83.84%)
262.334523934 seconds time elapsed
781.460681000 seconds user
34.017872000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -n=3 rp larson lean-mathlib mleak rbstress cthrash z3 spec spec-bench security allt':
870,250.28 msec task-clock # 3.322 CPUs utilized
1,557,513 context-switches # 1.790 K/sec
356,562 cpu-migrations # 409.724 /sec
3,656,478 page-faults # 4.202 K/sec
3,579,230,925,266 cycles # 4.113 GHz (83.85%)
49,062,192,975 stalled-cycles-frontend # 1.37% frontend cycles idle (83.81%)
9,480,764,498 stalled-cycles-backend # 0.26% backend cycles idle (83.79%)
4,554,538,265,441 instructions # 1.27 insn per cycle
# 0.01 stalled cycles per insn (83.76%)
705,200,973,298 branches # 810.343 M/sec (83.87%)
17,231,489,503 branch-misses # 2.44% of all branches (83.84%)
261.945424032 seconds time elapsed
818.733718000 seconds user
29.454789000 seconds sys
```
### ARM64 版本
#### 所有測試
##### 原本 rpmalloc
```shell
Performance counter stats for '../../bench.sh -n=3 rp allt larson lean-mathlib malloc-large mleak rbstress cthrash z3 spec spec-bench security':
579203.96 msec task-clock # 1.815 CPUs utilized
341961 context-switches # 590.398 /sec
34663 cpu-migrations # 59.846 /sec
27154286 page-faults # 46.882 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
319.050415021 seconds time elapsed
489.572905000 seconds user
73.798088000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -n=3 rp allt larson lean-mathlib malloc-large mleak rbstress cthrash z3 spec spec-bench security':
578142.07 msec task-clock # 1.822 CPUs utilized
347318 context-switches # 600.749 /sec
37126 cpu-migrations # 64.216 /sec
3407566 page-faults # 5.894 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
317.231061062 seconds time elapsed
487.113468000 seconds user
73.023404000 seconds sys
```
#### malloc-large 測試
##### 原本 rpmalloc
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
malloc-large rp 15.39 410288 1.36 14.03 0 7784548
malloc-large rp 15.12 410268 1.38 13.74 0 7784548
malloc-large rp 15.08 410280 1.24 13.83 0 7784547
Performance counter stats for '../../bench.sh -n=3 rp malloc-large':
45672.21 msec task-clock # 1.000 CPUs utilized
187 context-switches # 4.094 /sec
8 cpu-migrations # 0.175 /sec
23358903 page-faults # 511.447 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
45.670108104 seconds time elapsed
4.005429000 seconds user
41.670384000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
#------------------------------------------------------------------
# test alloc time rss user sys page-faults page-reclaims
malloc-large rp 13.74 411568 0.41 13.33 0 7816548
malloc-large rp 13.77 411568 0.38 13.39 0 7816548
malloc-large rp 13.76 411564 0.40 13.35 0 7816548
Performance counter stats for '../../bench.sh -n=3 rp malloc-large':
41351.83 msec task-clock # 1.000 CPUs utilized
154 context-switches # 3.724 /sec
7 cpu-migrations # 0.169 /sec
6846 page-faults # 165.555 /sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
41.351039518 seconds time elapsed
1.210233000 seconds user
40.145854000 seconds sys
```
#### 除了 malloc-large 以外的測試
##### 原本 rpmalloc
```shell
Performance counter stats for '../../bench.sh -n=3 rp allt larson lean-mathlib mleak rbstress cthrash z3 spec spec-bench security':
531856.65 msec task-clock # 1.956 CPUs utilized
347771 context-switches # 653.881 /sec
37123 cpu-migrations # 69.799 /sec
3766341 page-faults # 7.081 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
271.930552997 seconds time elapsed
485.217362000 seconds user
31.033840000 seconds sys
```
##### 使用 `MAP_POPULATE` 的版本
```shell
Performance counter stats for '../../bench.sh -n=3 rp allt larson lean-mathlib mleak rbstress cthrash z3 spec spec-bench security':
535424.72 msec task-clock # 1.946 CPUs utilized
348042 context-switches # 650.030 /sec
35890 cpu-migrations # 67.031 /sec
3372262 page-faults # 6.298 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
275.121388960 seconds time elapsed
486.279093000 seconds user
32.372253000 seconds sys
```
---
## 使用 except 調整分之狀況後的結果
### x86-64






### arm64






## 與最初版本的比較
### x86-64






### arm64





