2022-10-11 12:17 (UTC+0000), Chengwen Feng: > This patch adds memarea to malloc_perf_autotest. > > Test platform: Kunpeng920 > Test command: dpdk-test -a 0000:7d:00.3 -l 10-12 > Test result: > USER1: Performance: rte_memarea > USER1: Size (B) Runs Alloc (us) Free (us) Total (us) memset (us) > USER1: 64 10000 0.03 0.03 0.06 0.01 > USER1: 128 10000 0.02 0.03 0.05 0.01 > USER1: 1024 10000 0.03 0.05 0.07 0.20 > USER1: 4096 10000 0.03 0.05 0.07 0.34 > USER1: 65536 10000 0.10 0.08 0.18 2.14 > USER1: 1048576 644 0.10 0.04 0.14 29.07 > USER1: 2097152 322 0.10 0.04 0.14 57.50 > USER1: 4194304 161 0.12 0.04 0.15 114.50 > USER1: 16777216 40 0.11 0.04 0.15 456.09 > USER1: 1073741824 Interrupted: out of memory. [1] > > Compared with rte_malloc: > USER1: Performance: rte_malloc > USER1: Size (B) Runs Alloc (us) Free (us) Total (us) memset (us) > USER1: 64 10000 0.14 0.07 0.21 0.01 > USER1: 128 10000 0.10 0.05 0.15 0.01 > USER1: 1024 10000 0.11 0.18 0.29 0.21 > USER1: 4096 10000 0.13 0.39 0.53 0.35 > USER1: 65536 10000 0.17 2.27 2.44 2.15 > USER1: 1048576 10000 37.21 71.63 108.84 29.08 > USER1: 2097152 10000 8831.15 160.02 8991.17 63.52 > USER1: 4194304 10000 47131.88 413.75 47545.62 173.79 > USER1: 16777216 4221 119604.60 2209.73 121814.34 964.42 > USER1: 1073741824 31 335058.32 223369.31 558427.63 62440.87 > > [1] The total-size of the memarea is restricted to avoid creation > failed.
This is not a fair comparison: rte_malloc time includes obtaining memory from the system. I think that memarea should have a dedicated benchmark, because eventually it will be interesting to compare memarea with different sources and algorithms. It will be also possible to add DPDK allocator to the comparison by running it for an isolated heap that doesn't grow. (In some distant future it would be cool to make DPDK allocator pluggable!) Some shared code between this benchmark and the new one can be factored out.