Free-Me: A Static Analysis for Automatic Individual Object Reclamation
|
|
- Denis Marsh
- 5 years ago
- Views:
Transcription
1 Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted from the original PLDI talk
2 Motivation Automatic memory reclamation (GC) No need for explicit free Garbage collector reclaims memory Eliminates Can we combine many programming the software errors engineering advantage of garbage collection with the low-cost incremental reclamation of Frequent explicit GCs: memory management? Problem: when do we get memory back? Reclaim memory quickly (minimize memory footprint), with high overhead Infrequent GCs: Lower overhead, but lots of garbage in memory
3 Example Read a token (new String) void parse(inputstream stream) { while (not_done) { String idname = stream.readtoken(); Identifier id = symboltable.lookup(idname); if (id == null) { id = new Identifier(idName); symboltable.add(idname, id); computeon(id); Notice: String idname is often garbage Memory: Compute on identifier Look up in symbol table If not there, create new identifier, add to symbol table
4 Explicit Reclamation as the solution void parse(inputstream stream) { while (not_done) { String idname = stream.readtoken(); Identifier id = symboltable.lookup(idname) if (id == null) { id = new Identifier(idName); symboltable.add(idname, id); else free(idname); computeon(id); String idname is garbage, free immediately Garbage does not accumulate Memory:
5 FreeMe as the solution Adds free() automatically FreeMe compiler pass inserts calls to free() Preserve software engineering benefits Can t determine lifetimes for Potential: all objects 1.7X performance Works with the garbage collector malloc/free vs GC in tight heaps Goal: Implementation of free() depends on collector (Hertz & Berger, OOPSLA 2005) Incremental, eager memory reclamation Results: reduce GC load, improve performance
6 Goal: FreeMe Analysis Determine when an object becomes unreachable Within a method, for allocation site p = new A where can we place a call to free(p)? Not a whole-program analysis* Idea: pointer analysis + liveness Pointer analysis for reachability Liveness analysis for when I ll describe the interprocedural parts later
7 Pointer Analysis String idname = stream.readtoken(); Identifier id = symboltable.lookup(idname); if (id == null) { id = new Identifier(idName); symboltable.add(idname, id); computeon(id); Connectivity graph id symboltable Variables Allocation sites Globals (statics) Analysis algorithm Flow-insensitive, field-insensitive Identifier (global) readtoken String idname
8 Pointer Analysis in more depth
9 Calculating the Points-To relation void function(a p1, A p2, A p3) { v1 = new O p1.f = v1 p2 = p1.f p3 = p1 v1 p1 p2 p3 O1 i, P t s T o ( p i ) = { N P i P t s T o ( p " i, P t s 1 ) = { N T o ( N P P i ) 1, O = { 1 N I i P t s T o ( p " i, P t s 2 ) = { N T o ( N P I ) 1, O = { 1, N N I i I 1, N P 2 i P t s T o ( p 3 ) = { N P 1, N P 3 N p1 N I1 N p2 N I2 N p3 N I3
10 Interprocedural component Detection of factory methods String idname = stream.readtoken(); Return value is a new object Can be freed by the caller Effects of methods called symboltable.add(idname, id); Hashtable.add: (0 1) (0 2) Describes how parameters are connected Compilation strategy: Summaries pre-computed for all methods Free-me only applied to hot methods
11 Generating summaries in more depth void function(a p1, A p2, A p3) { v1 = new O p1.f = v1 p2 = p1.f p3 = p1 getfield is needed because a single pointer link in summary may represent multiple pointers in the callee v1 O1 p1 N p1 p2 N p2 p3 N p3 P t s T o ( p 1 ) = { N P 1, O 1 P t s T o ( p 2 ) = { N P 1, O 1, N I 1, N P 2 P t s T o ( p 3 ) = { N P 1, N P 3 N I N I N I ( p 2, p 1 ), ( p 2, * p 1 ) ( p 3, p 1 )
12 The need for liveness analysis When objects become unreachable, not just whether or not they escape id symboltable (global) Identifier idname readtoken String
13 Adding Liveness Key : An object is reachable only when all incoming pointers are live idname (global) Identifier readtoken String Reachability is union of all these live ranges From a variable: From a global: From other object: Live range of the variable Live from the pointer store onward Live from the pointer store until source object becomes unreachable
14 Liveness Analysis Computed as sets of edges Variables idname Heap pointers String idname = stream.readtoken(); Identifier id = symboltable.lookup(idname); if (id == null) id = new Identifier(idName); Identifier (global) symboltable.add(idname, id); readtoken String computeon(id);
15 Where can we free it? Where object exists readtoken String -minus- Where reachable Compiler inserts call to free(idname) String idname = stream.readtoken(); Identifier id = symboltable.lookup(idname); if (id == null) id = new Identifier(idName); symboltable.add(idname, id); computeon(id);
16 Free placement issues Select earliest point A,eliminate all B: A dom B Deal with double free s
17 Runtime support for FreeMe Run-time: depends on collector Mark/sweep Free-list: free() operation Generational mark/sweep Unbump: move nursery bump pointer backward (LIFO frees) Unreserve: reduce copy reserve Very low overhead Run longer without collecting Size to free defined statically/dynamically (query object)
18 Experimental Evaluation
19 Volume freed in MB 100% % Increasing alloc size Increasing alloc size SPEC benchmarks DaCapo benchmarks 0% db raytrace mtrt javac pseudojbb compress jack jess fop jython hsqldb ps antlr pmd bloat xalan
20 Volume freed in MB 100% FreeMe Mean: 32% % 0% db mtrt raytrace 0 pseudojbb compress javac fop jack jess jython hsqldb ps antlr pmd bloat xalan
21 Comparing FreeMe & other approaches Stack-like free() allocations of same method Restrict free instrumentation to end of method No factory methods No conditional freeing Uncond Prove objects dead on all paths Influence of free on some paths
22 Mark/sweep time 20% All benchmarks 15% 6%
23 Mark/sweep GC time 30% All benchmarks 9%
24 GenMS time All benchmarks Brings into question all techniques that target short-lived objects
25 GenMS GC time Why doesn t this help? All benchmarks Note: the number of GCs is greatly reduced FreeMe mostly finds shortlived objects Nursery reclaims dead objects for free (cost ~ survivors)
26 12% Bloat GC time
27 Conclusions FreeMe analysis Finds many objects to free: often 30% - 60% Most are short-lived objects GC + explicit free() Advantage over stack/region allocation: no need to make decision at allocation time Generational collectors Nursery works very well Mark-sweep collectors 50% to 200% speedup Works better as memory gets tighter Embedded applications: Compile-ahead Memory constrained Non-moving collectors
28 Discussion Is compile-time memory management inherently incompatible with generational copying collection? Is the amount of memory freed significant? Could static analysis allow mark-sweep collectors to compete with generational collectors?
Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley
Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?
More informationManaged runtimes & garbage collection
Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security
More informationQuantifying the Performance of Garbage Collection vs. Explicit Memory Management
Quantifying the Performance of Garbage Collection vs. Explicit Memory Management Matthew Hertz Canisius College Emery Berger University of Massachusetts Amherst Explicit Memory Management malloc / new
More informationOpera&ng Systems CMPSCI 377 Garbage Collec&on. Emery Berger and Mark Corner University of Massachuse9s Amherst
Opera&ng Systems CMPSCI 377 Garbage Collec&on Emery Berger and Mark Corner University of Massachuse9s Amherst Ques
More informationPhase-based Adaptive Recompilation in a JVM
Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable
More informationMyths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer
More informationTowards Parallel, Scalable VM Services
Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors
More informationAcknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides
Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++
More informationGarbage Collection Techniques
Garbage Collection Techniques Michael Jantz COSC 340: Software Engineering 1 Memory Management Memory Management Recognizing when allocated objects are no longer needed Deallocating (freeing) the memory
More informationAdaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer
Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21
More informationIBM Research Report. Efficient Memory Management for Long-Lived Objects
RC24794 (W0905-013) May 7, 2009 Computer Science IBM Research Report Efficient Memory Management for Long-Lived Objects Ronny Morad 1, Martin Hirzel 2, Elliot K. Kolodner 1, Mooly Sagiv 3 1 IBM Research
More informationRuntime. The optimized program is ready to run What sorts of facilities are available at runtime
Runtime The optimized program is ready to run What sorts of facilities are available at runtime Compiler Passes Analysis of input program (front-end) character stream Lexical Analysis token stream Syntactic
More informationThe DaCapo Benchmarks: Java Benchmarking Development and Analysis
The DaCapo Benchmarks: Java Benchmarking Development and Analysis Stephen M Blackburn αβ, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer Diwan ζ, Daniel Feinberg
More informationLu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine
Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code
More informationGC Assertions: Using the Garbage Collector to Check Heap Properties
GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper
More informationLimits of Parallel Marking Garbage Collection....how parallel can a GC become?
Limits of Parallel Marking Garbage Collection...how parallel can a GC become? Dr. Fridtjof Siebert CTO, aicas ISMM 2008, Tucson, 7. June 2008 Introduction Parallel Hardware is becoming the norm even for
More informationJava Performance Evaluation through Rigorous Replay Compilation
Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,
More informationTowards Garbage Collection Modeling
Towards Garbage Collection Modeling Peter Libič Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics, Charles University Malostranské nám. 25, 118 00 Prague, Czech
More informationJava without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector
Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector David F. Bacon IBM T.J. Watson Research Center Joint work with C.R. Attanasio, Han Lee, V.T. Rajan, and Steve Smith ACM Conference
More informationLecture 15 Garbage Collection
Lecture 15 Garbage Collection I. Introduction to GC -- Reference Counting -- Basic Trace-Based GC II. Copying Collectors III. Break Up GC in Time (Incremental) IV. Break Up GC in Space (Partial) Readings:
More informationA Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler
A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April
More informationReplicating Real-Time Garbage Collector
Replicating Real-Time Garbage Collector Tomas Kalibera Purdue University, West Lafayette, IN 47907, USA; Charles University, Prague, 147 00, Czech Republic SUMMARY Real-time Java is becoming a viable platform
More informationGarbage Collection. Steven R. Bagley
Garbage Collection Steven R. Bagley Reference Counting Counts number of pointers to an Object deleted when the count hits zero Eager deleted as soon as it is finished with Problem: Circular references
More informationUlterior Reference Counting: Fast Garbage Collection without a Long Wait
Ulterior Reference Counting: Fast Garbage Collection without a Long Wait ABSTRACT Stephen M Blackburn Department of Computer Science Australian National University Canberra, ACT, 000, Australia Steve.Blackburn@anu.edu.au
More informationOn the Effectiveness of GC in Java
On the Effectiveness of GC in Java Ran Shaham Tel-Aviv University and IBM aifa Research aboratory rans@math.tau.ac.il Elliot K. Kolodner IBM aifa Research aboratory kolodner@il.ibm.com Mooly Sagiv Tel-Aviv
More informationEfficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management
to Reuse * * Evaluated * OOPSLA * Artifact * AEC Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management Jipeng Huang Michael D. Bond Ohio State
More informationAverroes: Letting go of the library!
Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]
More informationEstimating the Impact of Heap Liveness Information on Space Consumption in Java
Estimating the Impact of Heap Liveness Information on Space Consumption in Java by R. Shaham, E. Kolodner and M. Sagiv first presented at ISSM'02 presentation: Adrian Moos Contents what is this about?
More informationExploiting the Behavior of Generational Garbage Collector
Exploiting the Behavior of Generational Garbage Collector I. Introduction Zhe Xu, Jia Zhao Garbage collection is a form of automatic memory management. The garbage collector, attempts to reclaim garbage,
More informationGarbage Collection. Hwansoo Han
Garbage Collection Hwansoo Han Heap Memory Garbage collection Automatically reclaim the space that the running program can never access again Performed by the runtime system Two parts of a garbage collector
More informationMicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance
MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance Feng Xian, Witawas Srisa-an, and Hong Jiang Department of Computer Science & Engineering University of Nebraska-Lincoln
More informationObject Co-location and Memory Reuse for Java Programs
Object Co-location and Memory Reuse for Java Programs ZOE C.H. YU, FRANCIS C.M. LAU, and CHO-LI WANG Department of Computer Science The University of Hong Kong Technical Report (TR-00-0) May 0, 00; Minor
More informationUsing Prefetching to Improve Reference-Counting Garbage Collectors
Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1 and Erez Petrank 2 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, ISRAEL. 2 Microsoft Research, One Microsoft
More informationUsing Prefetching to Improve Reference-Counting Garbage Collectors
Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1, and Erez Petrank 2, 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, Israel paz@il.ibm.com 2 Microsoft Research,
More informationReducing Generational Copy Reserve Overhead with Fallback Compaction
Reducing Generational Copy Reserve Overhead with Fallback Compaction Phil McGachey Antony L. Hosking Department of Computer Sciences Purdue University West Lafayette, IN 4797, USA phil@cs.purdue.edu hosking@cs.purdue.edu
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationImmix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance
Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Stephen M. Blackburn Australian National University Steve.Blackburn@anu.edu.au Kathryn S. McKinley
More informationHeap Compression for Memory-Constrained Java
Heap Compression for Memory-Constrained Java CSE Department, PSU G. Chen M. Kandemir N. Vijaykrishnan M. J. Irwin Sun Microsystems B. Mathiske M. Wolczko OOPSLA 03 October 26-30 2003 Overview PROBLEM:
More informationUnderstanding Parallelism-Inhibiting Dependences in Sequential Java
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core
More informationAzul Systems, Inc.
1 Stack Based Allocation in the Azul JVM Dr. Cliff Click cliffc@azulsystems.com 2005 Azul Systems, Inc. Background The Azul JVM is based on Sun HotSpot a State-of-the-Art Java VM Java is a GC'd language
More informationTrace-based JIT Compilation
Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,
More informationDynamic Selection of Application-Specific Garbage Collectors
Dynamic Selection of Application-Specific Garbage Collectors Sunil V. Soman Chandra Krintz University of California, Santa Barbara David F. Bacon IBM T.J. Watson Research Center Background VMs/managed
More informationProbabilistic Calling Context
Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213
More informationGarbage Collection. Akim D le, Etienne Renault, Roland Levillain. May 15, CCMP2 Garbage Collection May 15, / 35
Garbage Collection Akim Demaille, Etienne Renault, Roland Levillain May 15, 2017 CCMP2 Garbage Collection May 15, 2017 1 / 35 Table of contents 1 Motivations and Definitions 2 Reference Counting Garbage
More informationCycle Tracing. Presented by: Siddharth Tiwary
Cycle Tracing Chapter 4, pages 41--56, 2010. From: "Garbage Collection and the Case for High-level Low-level Programming," Daniel Frampton, Doctoral Dissertation, Australian National University. Presented
More informationCMSC 330: Organization of Programming Languages. Memory Management and Garbage Collection
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC330 Fall 2018 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationTolerating Memory Leaks
Tolerating Memory Leaks UT Austin Technical Report TR-07-64 December 7, 2007 Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu
More informationThe Garbage Collection Advantage: Improving Program Locality
The Garbage Collection Advantage: Improving Program Locality Xianglong Huang Stephen M Blackburn Kathryn S McKinley The University of Texas at Austin Australian National University The University of Texas
More informationOlder-First Garbage Collection in Practice: Evaluation in a Java Virtual Machine
Older-First Garbage Collection in Practice: Evaluation in a Java Virtual Machine Darko Stefanovic (Univ. of New Mexico) Matthew Hertz (Univ. of Massachusetts) Stephen M. Blackburn (Australian National
More informationJinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces
Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.
More informationAbstract. SAWYER, RICHARD K. Page Pinning Improves Performance of Generational. Garbage Collection. (Under the direction of Dr. Edward F. Gehringer).
Abstract SAWYER, RICHARD K. Page Pinning Improves Performance of Generational Garbage Collection. (Under the direction of Dr. Edward F. Gehringer). Garbage collection became widely used with the growing
More informationSABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1
SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 Spring 2017 1 Memory Attributes Memory to store data in programming languages has the following lifecycle
More informationHow s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services
How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th
More informationPointer Analysis in the Presence of Dynamic Class Loading
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan University of Colorado at Boulder Michael Hind IBM T.J. Watson Research Center 1 Pointer analysis motivation Code a =
More informationContinuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat
Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.
More informationIntelligent Compilation
Intelligent Compilation John Cavazos Department of Computer and Information Sciences University of Delaware Autotuning and Compilers Proposition: Autotuning is a component of an Intelligent Compiler. Code
More informationRun-Time Environments/Garbage Collection
Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs
More informationCS2210: Compiler Construction. Runtime Environment
: The environment in which the program executes in at runtime Includes HW: Main memory, CPU,... Includes OS: Environment variables,... When a program is invoked The OS allocates memory for the program
More informationExploiting Prolific Types for Memory Management and Optimizations
Exploiting Prolific Types for Memory Management and Optimizations Yefim Shuf Manish Gupta Rajesh Bordawekar Jaswinder Pal Singh IBM T. J. Watson Research Center Computer Science Department P. O. Box 218
More informationDeallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection
Deallocation Mechanisms User-controlled Deallocation Allocating heap space is fairly easy. But how do we deallocate heap memory no longer in use? Sometimes we may never need to deallocate! If heaps objects
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationProgram Calling Context. Motivation
Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The
More informationUncovering Performance Problems in Java Applications with Reference Propagation Profiling
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University
More informationIntelligent Selection of Application-Specific Garbage Collectors
Intelligent Selection of Application-Specific Garbage Collectors Jeremy Singer Gavin Brown Ian Watson University of Manchester, UK {jsinger,gbrown,iwatson}@cs.man.ac.uk John Cavazos University of Edinburgh,
More informationError-Free Garbage Collection Traces: How to Cheat and Not Get Caught
Error-Free Garbage Collection Traces: How to Cheat and Not Get Caught Matthew Hertz Stephen M Blackburn J Eliot B Moss Kathryn S. M c Kinley Darko Stefanović Dept. of Computer Science University of Massachusetts
More informationCS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 11
CS 536 Introduction to Programming Languages and Compilers Charles N. Fischer Lecture 11 CS 536 Spring 2015 1 Handling Overloaded Declarations Two approaches are popular: 1. Create a single symbol table
More informationMyths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Stephen M Blackburn Department of Computer Science Australian National University Canberra, ACT, 000, Australia Steve.Blackburn@cs.anu.edu.au
More informationContext-sensitive points-to analysis: is it worth it?
McGill University School of Computer Science Sable Research Group Context-sensitive points-to analysis: is it worth it? Sable Technical Report No. 2005-2 Ondřej Lhoták Laurie Hendren October 21, 2005 w
More informationCompilers. 8. Run-time Support. Laszlo Böszörmenyi Compilers Run-time - 1
Compilers 8. Run-time Support Laszlo Böszörmenyi Compilers Run-time - 1 Run-Time Environment A compiler needs an abstract model of the runtime environment of the compiled code It must generate code for
More informationDemand-Driven Points-To Analysis For Java
Demand-Driven Points-To Analysis For Java Manu Sridharan, Ras Bodik Lexin Shan Denis Gopan UC Berkeley Microsoft UW Madison OOPSLA 2005 1 Who needs better pointer analysis? IDEs: for refactoring, program
More informationCRAMM: Virtual Memory Support for Garbage-Collected Applications
CRAMM: Virtual Memory Support for Garbage-Collected Applications Ting Yang Emery D. Berger Scott F. Kaplan J. Eliot B. Moss tingy@cs.umass.edu emery@cs.umass.edu sfkaplan@cs.amherst.edu moss@cs.umass.edu
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level
More informationPerformance of Non-Moving Garbage Collectors. Hans-J. Boehm HP Labs
Performance of Non-Moving Garbage Collectors Hans-J. Boehm HP Labs Why Use (Tracing) Garbage Collection to Reclaim Program Memory? Increasingly common Java, C#, Scheme, Python, ML,... gcc, w3m, emacs,
More informationGarbage Collector Refinement for New Dynamic Multimedia Applications on Embedded Systems
Garbage Collector Refinement for New Dynamic Multimedia Applications on Embedded Systems Jose M. Velasco, David Atienza, Francky Catthoor, Francisco Tirado, Katzalin Olcoz, Jose M. Mendias DACYA/UCM, Avda.
More informationCS 241 Honors Memory
CS 241 Honors Memory Ben Kurtovic Atul Sandur Bhuvan Venkatesh Brian Zhou Kevin Hong University of Illinois Urbana Champaign February 20, 2018 CS 241 Course Staff (UIUC) Memory February 20, 2018 1 / 35
More informationContext-sensitive points-to analysis: is it worth it?
Context-sensitive points-to analysis: is it worth it? Ondřej Lhoták 1,2 and Laurie Hendren 2 olhotak@uwaterloo.ca hendren@sable.mcgill.ca 1 School of Computer Science, University of Waterloo, Waterloo,
More informationPointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan and Michael Hind Presented by Brian Russell Claim: First nontrivial pointer analysis dealing with all Java language features
More informationIdentifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo
Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation
More informationHeap Management. Heap Allocation
Heap Management Heap Allocation A very flexible storage allocation mechanism is heap allocation. Any number of data objects can be allocated and freed in a memory pool, called a heap. Heap allocation is
More informationWrite Barrier Elision for Concurrent Garbage Collectors
Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Computer Laboratory Cambridge University Cambridge CB3 FD, U.K. mv27@cl.cam.ac.uk David F. Bacon IBM T.J. Watson Research Center
More informationZ-Rays: Divide Arrays and Conquer Speed and Flexibility
Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn Daniel Frampton Martin Hirzel Kathryn S. McKinley University of Texas at Austin Australian National University
More informationJAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder
JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance
More informationDesign Issues. Subroutines and Control Abstraction. Subroutines and Control Abstraction. CSC 4101: Programming Languages 1. Textbook, Chapter 8
Subroutines and Control Abstraction Textbook, Chapter 8 1 Subroutines and Control Abstraction Mechanisms for process abstraction Single entry (except FORTRAN, PL/I) Caller is suspended Control returns
More informationField Analysis. Last time Exploit encapsulation to improve memory system performance
Field Analysis Last time Exploit encapsulation to improve memory system performance This time Exploit encapsulation to simplify analysis Two uses of field analysis Escape analysis Object inlining April
More informationDynamic Object Sampling for Pretenuring
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Austin, TX, 8, USA mjump@cs.utexas.edu Stephen M Blackburn Department of Computer Science
More informationManual Allocation. CS 1622: Garbage Collection. Example 1. Memory Leaks. Example 3. Example 2 11/26/2012. Jonathan Misurda
Manual llocation Dynamic memory allocation is an obvious necessity in a programming environment. S 1622: Garbage ollection Many programming languages expose some functions or keywords to manage runtime
More informationThe CLOSER: Automating Resource Management in Java
The CLOSER: Automating Resource Management in Java Isil Dillig Thomas Dillig Computer Science Department Stanford University Eran Yahav Satish Chandra IBM T.J. Watson Research Center ISMM 2008 Motivation
More informationQUANTIFYING AND IMPROVING THE PERFORMANCE OF GARBAGE COLLECTION
QUANTIFYING AND IMPROVING THE PERFORMANCE OF GARBAGE COLLECTION A Dissertation Presented by MATTHEW HERTZ Submitted to the Graduate School of the University of Massachusetts Amherst in partial fulfillment
More informationDetecting and Fixing Memory-Related Performance Problems in Managed Languages
Detecting and Fixing -Related Performance Problems in Managed Languages Lu Fang Committee: Prof. Guoqing Xu (Chair), Prof. Alex Nicolau, Prof. Brian Demsky University of California, Irvine May 26, 2017,
More informationGenerating Object Lifetime Traces With Merlin
Generating Object Lifetime Traces With Merlin MATTHEW HERTZ University of Massachusetts, Amherst STEPHEN M. BLACKBURN Australian National University J. ELIOT B. MOSS University of Massachusetts, Amherst
More informationConcepts Introduced in Chapter 7
Concepts Introduced in Chapter 7 Storage Allocation Strategies Static Stack Heap Activation Records Access to Nonlocal Names Access links followed by Fig. 7.1 EECS 665 Compiler Construction 1 Activation
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c/su06 CS61C : Machine Structures Lecture #6: Memory Management CS 61C L06 Memory Management (1) 2006-07-05 Andy Carle Memory Management (1/2) Variable declaration allocates
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationCPSC 213. Introduction to Computer Systems. Instance Variables and Dynamic Allocation. Unit 1c
CPSC 213 Introduction to Computer Systems Unit 1c Instance Variables and Dynamic Allocation 1 Reading For Next 3 Lectures Companion 2.4.4-2.4.5 Textbook Structures, Dynamic Memory Allocation, Understanding
More informationEfficient Runtime Tracking of Allocation Sites in Java
Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?
More informationAlgorithms for Dynamic Memory Management (236780) Lecture 4. Lecturer: Erez Petrank
Algorithms for Dynamic Memory Management (236780) Lecture 4 Lecturer: Erez Petrank!1 March 24, 2014 Topics last week The Copying Garbage Collector algorithm: Basics Cheney s collector Additional issues:
More informationLecture 9 Dynamic Compilation
Lecture 9 Dynamic Compilation I. Motivation & Background II. Overview III. Compilation Policy IV. Partial Method Compilation V. Partial Dead Code Elimination VI. Escape Analysis VII. Results Partial Method
More informationA new Mono GC. Paolo Molaro October 25, 2006
A new Mono GC Paolo Molaro lupus@novell.com October 25, 2006 Current GC: why Boehm Ported to the major architectures and systems Featurefull Very easy to integrate Handles managed pointers in unmanaged
More information