diff options
| -rw-r--r-- | src/benchmarks/cfrac.py | 19 | ||||
| -rw-r--r-- | src/benchmarks/espresso.py | 12 |
2 files changed, 21 insertions, 10 deletions
diff --git a/src/benchmarks/cfrac.py b/src/benchmarks/cfrac.py index 2829b77..0a0a8d5 100644 --- a/src/benchmarks/cfrac.py +++ b/src/benchmarks/cfrac.py @@ -16,10 +16,15 @@ # along with allocbench. If not, see <http://www.gnu.org/licenses/>. """cfrac is a single threaded implementation of the continued fraction factorization algorithm. -It uses many small short-lived allocations. Factorizing 175451865205073170563711388363274837927895 -results in 43044885 allocator calls (malloc: 21522444, free: 21522441). +It uses many small short-lived allocations. +Factorizing 175451865205073170563711388363274837927895 results in +43044885 allocator calls (malloc: 21522444, free: 21522441). -Top 10 allocation sizes 1.00% of all allocations +Allocator portion of total cycles measured using perf record/report: +malloc 4.33% +free 7.74% + +Top 10 allocation sizes 99.95% of all allocations 1. 18 B occurred 8172763 times 2. 28 B occurred 3781894 times 3. 10 B occurred 2989673 times @@ -30,14 +35,16 @@ Top 10 allocation sizes 1.00% of all allocations 8. 14 B occurred 170914 times 9. 30 B occurred 21149 times 10. 44 B occurred 15922 times -allocations <= 64 21522432 -allocations <= 1024 21522436 -allocations <= 4096 21522443 + +allocations <= 64 21522432 100.00% +allocations <= 1024 21522436 100.00% +allocations <= 4096 21522443 100.00% Histogram of sizes: 0 - 15 3363764 15.63% ******* 16 - 31 18132778 84.25% ****************************************** 32 - 47 25888 0.12% +... The relevant non functional allocator properties are the raw speed of the API function as well as memory placement strategies with good data locality. diff --git a/src/benchmarks/espresso.py b/src/benchmarks/espresso.py index 4ffd843..68e474c 100644 --- a/src/benchmarks/espresso.py +++ b/src/benchmarks/espresso.py @@ -22,7 +22,11 @@ The file "largest.espresso" shipped with mimalloc-bench and allocbench generates a workload with 3367364 allocator calls (malloc: 1659385, free: 1691851, realloc: 16128). About 87% of all allocations are smaller than 64 Byte, the common cache line size. -Top 10 allocation sizes 0.91% of all allocations +Allocator portion of total cycles measured using perf record/report: +malloc 8.64% +free 5.04% + +Top 10 allocation sizes 90.73% of all allocations 1. 48 B occurred 615622 times 2. 16 B occurred 533267 times 3. 56 B occurred 235944 times @@ -34,9 +38,9 @@ Top 10 allocation sizes 0.91% of all allocations 9. 272 B occurred 14644 times 10. 96 B occurred 13175 times -allocations <= 64 1442648 -allocations <= 1024 1657509 -allocations <= 4096 1667112 +allocations <= 64 1442648 86.10% +allocations <= 1024 1657509 98.93% +allocations <= 4096 1667112 99.50% The relevant non functional allocator properties are the raw speed of the API function as well as memory placement strategies with good data locality. |
