PROMPT: A Fast and Extensible Memory Profiling Framework [abstract] (arXiv)
Ziyang Xu, Yebin Chon, Yian Su, Zujun Tan, Sotiris Apostolakis, Simone Campanoni, and David I. August
Proceedings of the ACM on Programming Languages, Volume 8, Issue OOPSLA (OOPSLA), October 2024.
Memory profiling captures programs' dynamic memory behavior, assisting
programmers in debugging, tuning, and enabling advanced compiler optimizations
like speculation-based automatic parallelization. As each use case demands its
unique program trace summary, various memory profiler types have been
developed. Yet, designing practical memory profilers often requires extensive
compiler expertise, adeptness in program optimization, and significant
implementation efforts. This often results in a void where aspirations for fast
and robust profilers remain unfulfilled. To bridge this gap, this paper
presents PROMPT, a pioneering framework for streamlined development of fast
memory profilers. With it, developers only need to specify profiling events and
define the core profiling logic, bypassing the complexities of custom
instrumentation and intricate memory profiling components and optimizations.
Two state-of-the-art memory profilers were ported with PROMPT while all
features preserved. By focusing on the core profiling logic, the code was
reduced by more than 65% and the profiling speed was improved by 5.3Ã and 7.1Ã
respectively. To further underscore PROMPTâs impact, a tailored memory
profiling workflow was constructed for a sophisticated compiler optimization
client. In just 570 lines of code, this redesigned workflow satisfies the
clientâs memory profiling needs while achieving more than 90% reduction in
profiling time and improved robustness compared to the original profilers.