Proceedings Article10.1145/1111583.1111585
Recursive data structure profiling
Easwaran Raman,David I. August +1 more
- 12 Jun 2005
- pp 5-14
TL;DR: A method for collecting RDS profile without requiring any high-level program representation or type information is described, which achieves this with manageable space and time overhead on a mixture of pointer intensive benchmarks from the SPEC, Olden and other benchmark suites.
read more
Abstract: As the processor-memory performance gap increases, so does the need for aggressive data structure optimizations to reduce memory access latencies. Such optimizations require a better understanding of the memory behavior of programs. We propose a profiling technique called Recursive Data Structure Profiling to help better understand the memory access behavior of programs that use recursive data structures (RDS) such as lists, trees, etc. An RDS profile captures the runtime behavior of the individual instances of recursive data structures. RDS profiling differs from other memory profiling techniques in its ability to aggregate information pertaining to an entire data structure instance, rather than merely capturing the behavior of individual loads and stores, thereby giving a more global view of a program's memory accesses.This paper describes a method for collecting RDS profile without requiring any high-level program representation or type information. RDS profiling achieves this with manageable space and time overhead on a mixture of pointer intensive benchmarks from the SPEC, Olden and other benchmark suites. To illustrate the potential of the RDS profile in providing a better understanding of memory accesses, we introduce a metric to quantify the notion of stability of an RDS instance. A stable RDS instance is one that undergoes very few changes to its structure between its initial creation and final destruction, making it an attractive candidate to certain data structure optimizations.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
The Runtime Structure of Object Ownership
TL;DR: This work introduces the ownership graph to summarize responsibility, and backbone equivalence to aggregate patterns within trees, and introduces a set of ownership structures, and quantifies their abundance.
85
Type Inference on Executables
Juan Caballero,Zhiqiang Lin +1 more
TL;DR: This article systematize the area of binary code type inference according to its most important dimensions: the applications that motivate its importance, the approaches used, the types that those approaches infer, the implementation of those approaches, and how the inference results are evaluated.
67
DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage
Changhee Jung,Nathan Clark +1 more
- 12 Dec 2009
TL;DR: The design and application of DDT are presented, a new program analysis tool that automatically identifies data structures within an application that is highly accurate across several different implementations of standard data structures, enabling aggressive optimizations in many situations.
StateFormer: fine-grained type recovery from binaries using generative state modeling
Kexin Pei,Jonas Guan,Matthew Broughton,Zhongtian Chen,Songchen Yao,David Williams-King,Vikas Ummadisetty,Junfeng Yang,Baishakhi Ray,Suman Jana +9 more
- 20 Aug 2021
TL;DR: Stateformer as discussed by the authors uses Generative State Modeling (GSM) to train a model to statically approximate execution effects of assembly instructions in both forward and backward directions, and then uses this knowledge of operational semantics to infer types.
51
Dynamic Data Structure Analysis for Java Programs
S. Pheng,Clark Verbrugge +1 more
- 14 Jun 2006
TL;DR: A dynamic heap analysis system is designed and implemented that allows one to examine and analyze how Java programs build and modify data structures, and to establish limits on static data structure analysis.
References
•Book
Introduction to Algorithms
Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest +2 more
- 01 Jan 1990
TL;DR: The updated new edition of the classic Introduction to Algorithms is intended primarily for use in undergraduate or graduate courses in algorithms or data structures and presents a rich variety of algorithms and covers them in considerable depth while making their design and analysis accessible to all levels of readers.
24.8K
Introduction to algorithms: 4. Turtle graphics
TL;DR: In this article, a language similar to logo is used to draw geometric pictures using this language and programs are developed to draw geometrical pictures using it, which is similar to the one we use in this paper.
15.4K
Pin: building customized program analysis tools with dynamic instrumentation
Chi-Keung Luk,Robert Cohn,Robert Muth,Harish Patil,Artur Klauser,Geoff Lowney,Steven Wallace,Vijay Janapa Reddi,Kim Hazelwood +8 more
- 12 Jun 2005
TL;DR: The goals are to provide easy-to-use, portable, transparent, and efficient instrumentation, and to illustrate Pin's versatility, two Pintools in daily use to analyze production software are described.
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
Rakesh Ghiya,Laurie Hendren +1 more
- 01 Jan 1996
TL;DR: In this paper, a shape analysis for heap-allocated data structures is proposed to aid in the disambiguation of heap allocated data structures by estimating the shape (Tree, DAG, or Cyclic Graph) of the data structure accessible from each heap-directed pointer.
Microarchitectural exploration with Liberty
Manish Vachharajani,Neil Vachharajani,David A. Penry,Jason Blome,David I. August +4 more
- 18 Nov 2002
TL;DR: LSE automatically constructs a simulator from a machine description that closely resembles the hardware, ensuring fidelity in the model, and enables the creation of highly reusable component libraries, easing the task of rapidly exploring ever more exotic designs.