Asking and Answering Questions During Memory Profiling

Abstract
The software engineering community has produced numerous tools, techniques, and methodologies for practitioners to analyze and optimize memory usage during software execution. However, little is known about the actual needs of programmers when analyzing memory behavior and how they use tools to address those needs. We conducted an exploratory study (i) to understand what a programmer needs to know when analyzing memory behavior and (ii) how a programmer finds that information with current tools. From our observations, we provide a catalog of 34 questions programmers ask themselves when analyzing memory behavior. We also report a detailed analysis of how some tools are used to answer these questions and the difficulties participants face during the process. Finally, we present four recommendations to guide researchers and developers in designing, evaluating, and improving memory behavior analysis tools.
Description
Keywords
Memory Management, Software, Resource Management, Codes, Python, Libraries, Data Mining, Program Analysis, Memory Management, Experimental Design, Memory Usage, Source Code, Information Extraction, Single Time Point, Flow Control, Python Programming, Memory Consumption, Programming Experience, Program Execution, Question Categories, Rest Of The Participants, Part Of Code, Function Calls, Static Information, Frequency Questions, Memory Issues, Code Execution, Memory Allocation, Work Sessions, Full Text Reports, Execution Path, Interactive Visualization, Data Structure, Software Applications, Video Recordings, Changes In Usage, Programming Language, Amount Of Memory, Python Programming Language, Memory Effect
Citation