Dynamic Shape and Data Structure Analysis in Java Presented by Sokhom Pheng (Supervised by Clark Verbrugge) McGill University October 17 th 2005.

Slides:



Advertisements
Similar presentations
Shape Analysis by Graph Decomposition R. Manevich M. Sagiv Tel Aviv University G. Ramalingam MSR India J. Berdine B. Cook MSR Cambridge.
Advertisements

Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Demand-driven Alias Analysis Implementation Based on Open64 Xiaomi An
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Distributed Approximate Spectral Clustering for Large- Scale Datasets FEI GAO, WAEL ABD-ALMAGEED, MOHAMED HEFEEDA PRESENTED BY : BITA KAZEMI ZAHRANI 1.
FastPlace: Efficient Analytical Placement using Cell Shifting, Iterative Local Refinement and a Hybrid Net Model FastPlace: Efficient Analytical Placement.
CORK: DYNAMIC MEMORY LEAK DETECTION FOR GARBAGE- COLLECTED LANGUAGES A TRADEOFF BETWEEN EFFICIENCY AND ACCURATE, USEFUL RESULTS.
DESIGN OF A GENERIC PATH PATH PLANNING SYSTEM AILAB Path Planning Workgroup.
The Ant and The Grasshopper Fast and Accurate Pointer Analysis for Millions of Lines of Code Ben Hardekopf and Calvin Lin PLDI 2007 (Best Paper & Best.
Jiazzi: New-Age Components for Old-Fashioned Java Sean McDirmid Matthew Flatt Wilson C. Hsieh School of Computing University of Utah.
Pointer and Shape Analysis Seminar Context-sensitive points-to analysis: is it worth it? Article by Ondřej Lhoták & Laurie Hendren from McGill University.
Specialized Reference Counting Garbage Collection using Data Structure Annotations By Eric Watkins and Dzin Avots for CS 343 Spring 2002.
Scheduling for Embedded Real-Time Systems Amit Mahajan and Haibo.
November 29, 2005Christopher Tuttle1 Linear Scan Register Allocation Massimiliano Poletto (MIT) and Vivek Sarkar (IBM Watson)
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
Partial Method Compilation using Dynamic Profile Information John Whaley Stanford University October 17, 2001.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
Compile-Time Deallocation of Individual Objects Sigmund Cherem and Radu Rugina International Symposium on Memory Management June, 2006.
Age-Oriented Concurrent Garbage Collection Harel Paz, Erez Petrank – Technion, Israel Steve Blackburn – ANU, Australia April 05 Compiler Construction Scotland.
An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages John Whaley Monica S. Lam Computer Systems Laboratory Stanford University.
The Design and Analysis of Algorithms
Linear Scan Register Allocation POLETTO ET AL. PRESENTED BY MUHAMMAD HUZAIFA (MOST) SLIDES BORROWED FROM CHRISTOPHER TUTTLE 1.
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 The Java Universal Network/Graph.
Dynamic Purity Analysis for Java Programs Haiying Xu, Christopher J.F. Pickett, Clark Verbrugge School of Computer Science, McGill University PASTE ’07.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
McLab Tutorial Laurie Hendren, Rahul Garg and Nurudeen Lameed Other McLab team members: Andrew Casey, Jesse Doherty, Anton Dubrau,
Adaptive Collaboration Support for the Web Amy Soller Institute for Defense Analyses, Alexandria, Virginia, U.S.A. Jonathan Grady October 12, 2005.
1 Sunbelt, 2/18/05 Interactive Visualizations to Explore Dynamic Network Data Jim Blythe USC Info Sciences Institute Cathleen McGrath Loyola Marymount.
An Adaptive, Region-based Allocator for Java Feng Qian, Laurie Hendren {fqian, Sable Research Group School of Computer Science McGill.
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas (Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio.
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
1 Iterative Program Analysis Abstract Interpretation Mooly Sagiv Tel Aviv University Textbook:
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Rethinking Soot for Summary-Based Whole- Program Analysis PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Dacong Yan.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Chameleon Automatic Selection of Collections Ohad Shacham Martin VechevEran Yahav Tel Aviv University IBM T.J. Watson Research Center Presented by: Yingyi.
Breadcrumbs: Efficient Context Sensitivity for Dynamic Bug Detection Analyses Michael D. Bond University of Texas at Austin Graham Z. Baker Tufts / MIT.
Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1.
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
Mark Marron IMDEA-Software (Madrid, Spain) 1.
CBSE'051 Component-Level Dataflow Analysis Atanas (Nasko) Rountev Ohio State University.
380C lecture 19 Where are we & where we are going –Managed languages Dynamic compilation Inlining Garbage collection –Opportunity to improve data locality.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Garbage Collection Advantage: Improving Program Locality Xianglong Huang (UT) Stephen M Blackburn (ANU), Kathryn S McKinley (UT) J Eliot B Moss (UMass),
Dynamic Analysis and Visualizing of Data Structures in Java Programs Presented by Sokhom Pheng (Supervisor: Clark Verbrugge) McGill University February.
Pointer Analysis Survey. Rupesh Nasre. Aug 24, 2007.
Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans, Lieven Eeckhout, Koen De Bosschere Department of Electronics.
Graph Data Management Lab, School of Computer Science Branch Code: A Labeling Scheme for Efficient Query Answering on Tree
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Pointer and Escape Analysis for Multithreaded Programs Alexandru Salcianu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology.
D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Simple Generational GC Andrew W. Appel (Practice and Experience, February 1989) Rudy Kaplan Depena CS 395T: Memory Management February 9, 2009.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Jeremy Nimmer, page 1 Automatic Generation of Program Specifications Jeremy Nimmer MIT Lab for Computer Science Joint work with.
1 Debunking Design Flaws in PHP Code using Static Call Graphs Berlin PHP Usergroup Falko Menge
Visualization in Process Mining
CSC305: COMPUTER PROGRAMMING II (JAVA)
WP3: D3.1 status, pending comments and next steps
Introduction to Compiler Construction
The Design and Analysis of Algorithms
Cork: Dynamic Memory Leak Detection with Garbage Collection
Seminar in automatic tools for analyzing programs with dynamic memory
Online Subpath Profiling
Adaptive Code Unloading for Resource-Constrained JVMs
Interpreting Java Program Runtimes
Presentation transcript:

Dynamic Shape and Data Structure Analysis in Java Presented by Sokhom Pheng (Supervised by Clark Verbrugge) McGill University October 17 th 2005

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 2 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 3 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 4 Introduction Two approaches Static analysis Conservative Limited to simple situations Dynamic analysis More accurate More expensive Have you ever wondered how data structures were constructed in your programs?

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 5 Contribution Framework for data structure visualization Program understanding Set limits on static approaches Provide two techniques for visualization Provide dynamic representation of garbage data

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 6 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 7 Design Overview

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 8 *J Shape Analyzer Entry point 1: DAG Entry point 3: Tree Entry point 4: DAG Entry point 1: DAG Entry point 3: Tree Entry point 4: Tree

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 9 More Analysis Info GC info Might be useful for GC optimization If visualized, can see drag effect Aging Useful for general program understanding Useful for teaching

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 10 GC Info (splay tree) application library

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 11 GC Info (cont’d) application library

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 12 GC Info (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 13 Aging (splay tree) application library tree DAG cycle

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 14 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 15 Challenge 1: Animation Issue This is what we want:

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 16 Animation Issue (cont’d) This is what we have:

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 17 Tools Used Tom Sawyer & yWorks yFiles Did not work properly as incremental Graphviz Neato Pin down object causes problems Graphviz Dot Tool we use Nicest and easiest to use

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 18 Tom Sawyer & yWorks yFiles

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 19 Tools Used Tom Sawyer & yWorks yFiles Did not work properly as incremental Graphviz Neato Pin down object causes problems Graphviz Dot Tool we use Nicest and easiest to use

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 20 Graphviz Neato

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 21 Tools Used Tom Sawyer & yWorks yFiles Did not work properly as incremental Graphviz Neato Pin down object causes problems Graphviz Dot Tool we use Nicest and easiest to use

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 22 Challenge 2: Data Size Visualization limitation Too many objects to draw BiSort: > 120,000 objects Too many snapshots generated Jess: > 48,000,000 snapshots Computational cost Analysis

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 23 Data Size Potential Solutions Problem with number of snapshots and cost Analyze data structure after a certain number of modifications instead Problem with number of objects Numerical summary

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 24 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 25 Benchmarks Tiny Splay tree, red-black tree Small JOlden suite Large SPECjvm98 suite

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 26 JOlden - BiSort

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 27 BiSort (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 28 BiSort GC Info

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 29 SPECjvm98 - Jess

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 30 Jess (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 31 Jess GC info

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 32 Outline Introduction & Contribution Design Challenges Experimental Results Future work & Conclusion

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 33 Future Work Map to static code location Visual improvement Improve animation quality Collapsing nodes to look at bigger graphs More analyses, i.e. summary graphs

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 34 Related Work Shape Analysis With Annotation Hummel et al.: program annotation Fradet et Le Métayer: language annotation Without annotation Ghiya and Hendren: tree/DAG/cycle Wilhelm et al.: shape graph Navarro et al.: reference-shape graph

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 35 Related Work (cont’d) Dynamic Analysis Online MIT Program Analysis Group: The Daikon invariant detector The Dynamo Project (Indiana University) Offline Dufour: *J, a tool for dynamic analysis of Java programs

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 36 Conclusion Design Challenges Visualization & tools Amount of data Experimental Results JOlden SPECjvm98

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 37 References 1.J. Bogda and A. Singh. Can Shape Analysis work at run-time? In Proceedings of the 1 st Java Virtual Machine Research and Technology Symposium, April 23-24, B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge. Dynamic metrics for java. OOPSLA ’03, pages P. Fradet and D. L. Métayer. Shape types. POPL ’97. 4.R. Ghiya and L. Hendren. Is it a tree, a dag, or a cyclic graph? A shape analysis for heap-directed pointers in c. POPL ’96. 5.B. Hackett and R. Rugina. Region-based shape analysis with tracked locations. POPL ’05. 6.A. Navarro, F. Corbera, R. Asenjo, A. Tineo, O. Plata, and E. Zapata. A new dependence test based on shape analysis for pointer-based codes. LCPC ’04 7.R. Wilhelm, S. Sagiv, and T. W. Reps. Shape analysis. In Computational Complexity, pages 1-17, 2000.

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 38 Questions?

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 39 SPECjvm98 - MpegAudio

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 40 MpegAudio (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 41 MpegAudio (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 42 MpegAudio (cont’d)

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 43 MpegAudio GC Info

October 17th 2005Dynamic Shape and Data Structure Analysis in Java 44 MpegAudio GC Info (cont’d)