An Empirical Study: MEMS as a Static Performance Metric
Liwei Zhang, Baoquan Cui, Xutong Ma, Jian Zhang

TL;DR
This paper explores using mems, the count of memory accesses, as a static, architecture-independent metric for estimating program performance, validated through an automated tool and empirical analysis of classical algorithms.
Contribution
It introduces a Clang-based tool for static mems counting and evaluates its effectiveness as a performance predictor across multiple algorithms.
Findings
Higher mems values correlate with longer runtime within the same program.
The correlation between mems and runtime weakens across different programs.
Mems is most effective for comparing execution paths within a program.
Abstract
Static performance estimation is essential during compile-time analysis, yet traditional runtime-based methods are costly and platform-dependent. We investigate mems, the number of memory accesses, as a static and architecture-independent performance metric. We develop a Clang-based automated instrumentation tool that rewrites source code to insert path tracing and \textit{mems} counting logic. This allows us to evaluate mems-based performance estimation across ten classical algorithm programs. Experimental results show that within the same program, execution paths with higher mems values consistently exhibit longer runtime. However, this correlation weakens between different programs, suggesting that mems is best suited for comparing performance of different execution paths in a program.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
