SSCLI workshop, Redmond 19 September 2005 Richard Jones, Hanspeter Johner, Marion Sébastien University of Kent GCspy.

Slides:



Advertisements
Similar presentations
An Implementation of Mostly- Copying GC on Ruby VM Tomoharu Ugawa The University of Electro-Communications, Japan.
Advertisements

Borland Optimizeit™ Profiler for the Microsoft .NET Framework
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
1 © 1999 Citrix Systems Inc Using type information in garbage collection Tim Harris.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 1 MC 2 –Copying GC for Memory Constrained Environments Narendran Sachindran J. Eliot.
Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
MC 2 : High Performance GC for Memory-Constrained Environments - Narendran Sachindran, J. Eliot B. Moss, Emery D. Berger Sowmiya Chocka Narayanan.
The road to reliable, autonomous distributed systems
MC 2 : High Performance GC for Memory-Constrained Environments N. Sachindran, E. Moss, E. Berger Ivan JibajaCS 395T *Some of the graphs are from presentation.
This presentation: Sasha GoldshteinCTO, Sela Group Garbage Collection Performance Tips.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Aarhus University, 2005Esmertec AG1 Implementing Object-Oriented Virtual Machines Lars Bak & Kasper Lund Esmertec AG
Connectivity-Based Garbage Collection Presenter Feng Xian Author Martin Hirzel, et.al Published in OOPSLA’2003.
Chapter 13 Embedded Systems
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
1 Reducing Generational Copy Reserve Overhead with Fallback Compaction Phil McGachey and Antony L. Hosking June 2006.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
1 Overview Assignment 6: hints  Living with a garbage collector Assignment 5: solution  Garbage collection.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
Lecture 10 : Introduction to Java Virtual Machine
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
EMSOFT’02 Silicomp Research Institute JCOD 1 JCOD A Lightweight Modular Compilation Technology For Embedded Java Bertrand Delsart :
© Richard Jones, University of Kent ISMM 2008 Wild & Crazy Ideas1 Richard Jones Computing Laboratory University of Kent,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Fast Conservative Garbage Collection Rifat Shahriyar Stephen M. Blackburn Australian National University Kathryn S. M cKinley Microsoft Research.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
1 Tuning Garbage Collection in an Embedded Java Environment G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M. J. Irwin Microsystems Design Lab The.
Copyright (c) 2004 Borys Bradel Myths and Realities: The Performance Impact of Garbage Collection Paper: Stephen M. Blackburn, Perry Cheng, and Kathryn.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
September 11, 2003 Beltway: Getting Around GC Gridlock Steve Blackburn, Kathryn McKinley Richard Jones, Eliot Moss Modified by: Weiming Zhao Oct
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Virtual Machines, Interpretation Techniques, and Just-In-Time Compilers Kostis Sagonas
SOC Virtual Prototyping: An Approach towards fast System- On-Chip Solution Date – 09 th April 2012 Mamta CHALANA Tech Leader ST Microelectronics Pvt. Ltd,
1 Garbage Collection Advantage: Improving Program Locality Xianglong Huang (UT) Stephen M Blackburn (ANU), Kathryn S McKinley (UT) J Eliot B Moss (UMass),
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Project Presentation By: Dean Morrison 12/6/2006 Dynamically Adaptive Prepaging for Effective Virtual Memory Management.
Full and Para Virtualization
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Marcelo R.N. Mendes. What is FINCoS? A set of tools for data generation, load submission, and performance measurement of CEP systems; Main Characteristics:
On Implementing High Level Concurrency in Java G Stewart von Itzstein Mark Jasiunas University of South Australia.
® July 21, 2004GC Summer School1 Cycles to Recycle: Copy GC Without Stopping the World The Sapphire Collector Richard L. Hudson J. Eliot B. Moss Originally.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
1 The Garbage Collection Advantage: Improving Program Locality Xianglong Huang (UT), Stephen M Blackburn (ANU), Kathryn S McKinley (UT) J Eliot B Moss.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Applications Active Web Documents Active Web Documents.
Operating System Structure
CS490 Windows Internals Quiz 2 09/27/2013.
David F. Bacon, Perry Cheng, and V.T. Rajan
PerfView Measure and Improve Your App’s Performance for Free
Adaptive Code Unloading for Resource-Constrained JVMs
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Outline Chapter 2 (cont) OS Design OS structure
Garbage Collection Advantage: Improving Program Locality
Demo for Partners and Customers
Presentation transcript:

SSCLI workshop, Redmond 19 September 2005 Richard Jones, Hanspeter Johner, Marion Sébastien University of Kent GCspy for Rotor

SSCLI workshop, Redmond 19 September GCspy Heap Visualisation Framework 1.Motivation & requirements 2.Abstractions & Architecture 3.Benefits 4.Rotor implementation 5.New views 6.Conclusion Developed by Richard Jones and Tony Printezis

SSCLI workshop, Redmond 19 September Motivation GCs have (almost) chaotic behaviour! Visualisation allows concise insight into GCs behaviour profiling / debugging Avoid collecting / analysing very large traces a picture is worth a thousand awk invocations! T.Printezis

SSCLI workshop, Redmond 19 September Requirements 1.Portability 2.Adaptability 3.Extensibility 4.Scalability 5.Responsiveness

SSCLI workshop, Redmond 19 September Abstractions Event e.g. start mark phase StreamAttribute e.g. used space TileBlock e.g. memory block SpaceComponent e.g. generation VisualiserGC

SSCLI workshop, Redmond 19 September 2005 MSR Rotor Presentation Day 6 Architecture GC/VM dependent GCspy generic Virtual Machine Application Socket Communications Event filters Used Roots Objects Cards Marked Copy DriverMS Driver Server-Interpreter Copy GCMS GC Data collectionInit Visualiser Communications Event filters Control Stream 0 Stream 1 Space 0Space 1 Client-Interpreter Space Renderer 0 Space Renderer 1 Control Stream 0 Stream 1 Stream 2

SSCLI workshop, Redmond 19 September GCspy Tile Information 8 Streams Magnifier 6 Spaces History view of the Mature M-S space Histogram view of the Mature spaces free-lists Appel-style Nursery space - separators show history View selectors Event

SSCLI workshop, Redmond 19 September 2005 CLR Profiler Available since 2003 for the.NET platform Strengths: Intended for the application developer Detailed exploration of the applications memory behaviour Different views Weaknesses: Slows down programs execution from 10 to 100 times Huge log file (can consume gigabytes of space) Needs the application to be compiled in debug mode Not portable (only for.NET on windows)

SSCLI workshop, Redmond 19 September GCspy Benefits Loosely coupled to VM rapid development of visualisation of new algorithms. Visualise a variety of data structures (card-tables, free-lists, trains…). Variety of dynamic views. Connect/disconnect to running VMs on the fly. No overhead outside data gathering periods. Designed for very large heaps. Small trace files (can store and replay).

SSCLI workshop, Redmond 19 September 2005 Rotor Server RMTk (MMTk for Rotor): What is MMTk (Memory Management Toolkit)? –Extensible and portable framework –Permits efficient and reliable build of Garbage Collectors –Originally developed for JVMs What is RMTk –Port of MMtk to Rotor by Andrew Gray –Relies on GCJ (Java compiler developed by the GCC team)

SSCLI workshop, Redmond 19 September 2005 Why RMTk? Wider range of GCs Easy and efficient implementation of new GCs Currently implemented: –Mark-Sweep –Semispace Copying –Generational Copying (copy both generations) –Generational Mark-Sweep (copy young gen, M-S old gen)

SSCLI workshop, Redmond 19 September 2005 Technical details Rotor's implementation: –Use of different GCs –Requires one build per GC Builds: –With GCspy support or not –With MMTk optimizations turned on or not –One RMTk library per collector: – Contains the GCspy drivers specific to that collector – Adds wrappers to handle communication between RMTk and GCspy –Only one GCspy server library

SSCLI workshop, Redmond 19 September MMTk's integration Application Communications Event filters Server-Interpreter Rotor Virtual Machine Copy GCMS GC Used Roots Objects Cards Marked Copy DriverMS Driver Init Data collection MMTk GC 0 MMTk GC 1 Used Roots Copy DriverMS Driver Init Objects Cards Marked GCspy abstractions allow easy replacement of data gathering mechanisms, collectors and VMs. other methods possible GCspy synchronous

SSCLI workshop, Redmond 19 September 2005 Components interaction GCSpy ServerClient RMTk mmtk mmtktransform jmtkbuild gcjmmtk RMTk library gcspyglue Rotor (Modified) SSCLI VM libgcspy.so : a is used and modified by b a b Legend: : a generates b a b : a composes b a b : a interacts with b a b

SSCLI workshop, Redmond 19 September 2005 Components instrumented A variety of different data structures have been instrumented Copy spaces (contiguous allocation) Mark-Sweep spaces Remembered sets Segregated free-lists

SSCLI workshop, Redmond 19 September 2005 GCspy client New plugin view mechanism: –Easy development and incorporation of new views –History is now just another plugin Writing a new plugin view: –Extend PluginListener (trivial 9 lines of code) –Extend PluginFrame (depends on complexity of the view) –Save as a jar file in the plugins directory Plugin manager: –Discovers available plugins –Maintains a list of activated plugins –Menu to choose the views to enable

SSCLI workshop, Redmond 19 September 2005 Benchmarks We need better benchmarks! Synthetic programs OK as stress tests Real programs for real understanding Documented Open source Existing benchmarks Zorn Krintz

SSCLI workshop, Redmond 19 September 2005 Methodology 1) RMTk without GCspy 2) RMTk + GCspy compiled in, GCspy client not connected 3) RMTk + GCspy compiled in, GCspy client connected Object-level data acquisition Performance overhead GCspy client connected: –8.47% average –36.1% worst case GCspy client disconnected: –Less than 2.5% average Caveat: –Rotor/RMTk is significantly slower than native Rotor.

SSCLI workshop, Redmond 19 September 2005 Performance

SSCLI workshop, Redmond 19 September Conclusion 1.GCspy incorporated into Rotor through RMTk. 2.Several GCs available, all instrumented for GCspy. 3.New GCspy views. 4.Good performance. 5.Documentation: Server API, GCspy client. 6.Need interesting, open source benchmarks

SSCLI workshop, Redmond 19 September 2005 Demo Play traceLaunch gcspy

SSCLI workshop, Redmond 19 September 2005 Questions?