Memory attributes CMSC 330: Organization of Programming Languages
|
|
- Gloria Burns
- 3 years ago
- Views:
Transcription
1 Memory attributes CMSC 330: Organization of Programming Languages Garbage Collection Memory to store data in programming languages has several attributes: Persistence (or lifetime) How long the memory exists Allocation When the memory is available for use Recovery When the system recovers the memory for reuse Most programming languages are concerned with some subset of the following 4 memory classes: Fixed (or static) memory Automatic memory Programmer allocated memory Persistent memory CMSC Memory classes Static memory Usually a fixed address in memory Persistence Lifetime of execution of program Allocation By compiler for entire execution Recovery By system when program terminates Automatic memory Usually on a Persistence Lifetime of method using that data Allocation When method is invoked Recovery When method terminates Memory classes Allocated memory Usually memory on a heap Persistence As long as memory is needed Allocation Explicitly by programmer Recovery Either by programmer or automatically (when possible and depends upon language) Persistent memory Usually the file system Persistence Multiple execution of a program (e.g., files or databases) Allocation By program or user, often outside of program execution Recovery When data no longer needed This form of memory usually outside of programming language course and part of database area (e.g., CMSC 424) CMSC CMSC 330 4
2 Memory Management in C Local variables live on the Allocated at function invocation time Deallocated when function returns Storage space reused after function returns Space on the heap allocated with malloc() Must be explicitly freed with free() This is called explicit or manual memory management Deletions must be done by the user CMSC Memory Management Mistakes May forget to free memory (memory leak) { int *x = (int *) malloc(sizeof(int)); } May retain ptr to freed memory (dangling pointer) { int *x =...malloc(); free(x); *x = 5; /* oops! */ } May try to free something twice { int *x =...malloc(); free(x); free(x); } This may corrupt the memory management data structures E.g., the memory allocator maintains a free list of space on the heap that s available CMSC Ways to Avoid Mistakes Don t allocate memory on the heap Often impractical Leads to confusing code (e.g., alloca() ) Never free memory OS will reclaim process s memory anyway at exit Memory is cheap; who cares about a little leak? LISP model System halts program and reclaims unused memory when there is no more available Use a garbage collector E.g., conservative Boehm-Weiser collector for C CMSC Memory Management in Ruby Local variables live on the Storage reclaimed when method returns Objects live on the heap Created with calls to Class.new Objects never explicitly freed Ruby uses automatic memory management Uses a garbage collector to reclaim memory CMSC 330 8
3 Memory Management in OCaml Local variables live on the Tuples, closures, and constructed types live on the heap let x = (3, 4) (* heap-allocated *) let f x y = x + y in f 3 (* result heap-allocated *) type a t = None Some of a None (* not on the heap just a primitive *) Some 37 (* heap-allocated *) Garbage collection reclaims memory Memory Management in Java Local variables live on the Allocated at method invocation time Deallocated when method returns Other data lives on the heap Memory is allocated with new But never explicitly deallocated Java uses automatic memory management CMSC CMSC Second Memory Problem: Fragmentation allocate(a); allocate(x); allocate(y); free(a); allocate(z); free(y); allocate(b); No contiguous space for b Garbage collection goal Process to reclaim memory. (Also solve Fragmentation problem.) Algorithm: You can do garbage collection and memory compaction if you know where every pointer is in a program. If you move the allocated storage, simply change the pointer to it. This is true in LISP, OCAML, Java, Prolog Not true in C, C++, Pascal, Ada CMSC 330 CMSC 330 2
4 Garbage Collection (GC) At any point during execution, can divide the objects in the heap into two classes: Live objects will be used later Dead objects will never be used again They are garbage Idea: Can reuse memory from dead objects Goals: Reduce memory leaks, and make dangling pointers impossible Many GC Techniques In most languages we can t know for sure which objects are really live or dead Undecidable, like solving the halting problem Thus we need to make an approximation OK if we decide something is live when it s not But we d better not deallocate an object that will be used later on CMSC CMSC Reachability An object is reachable if it can be accessed by chasing pointers from live data Safe policy: delete unreachable objects An unreachable object can never be accessed again by the program The object is definitely garbage A reachable object may be accessed in the future The object could be garbage but will be retained anyway Could lead to memory leaks CMSC Roots At a given program point, we define liveness as being data reachable from the root set: Global variables What are these in Java? Ruby? OCaml? Local variables of all live method activations (i.e., the ) At the machine level, we also consider the register set (usually stores local or global variables) Next: techniques for pointer chasing CMSC 330 6
5 Reference Counting Reference Counting Example Old technique (960) Each object has count of number of pointers to it from other objects and from the When count reaches 0, object can be deallocated 2 Counts tracked by either compiler or manually To find pointers, need to know layout of objects In particular, need to distinguish pointers from ints Method works mostly for reclaiming memory; doesn t handle fragmentation problem CMSC CMSC Reference Counting Example Reference Counting Example 2 2 CMSC CMSC
6 Reference Counting Example Reference Counting Example CMSC CMSC Reference Counting Example Reference Counting Example 2 0 CMSC CMSC
7 Tradeoffs Advantage: incremental technique Generally small, constant amount of work per memory write With more effort, can even bound running time Disadvantages: Cascading decrements can be expensive Can t collect cycles, since counts never go to 0 Also requires extra storage for reference counts Mark and Sweep GC Idea: Only objects reachable from could possibly be live Every so often, stop the world and do GC: Mark all objects on as live Until no more reachable objects, Mark object reachable from live object as live Deallocate any non-reachable objects This is a tracing garbage collector Does not handle fragmentation problem CMSC CMSC Mark and Sweep Example Mark and Sweep Example CMSC CMSC
8 Mark and Sweep Example Mark and Sweep Example CMSC CMSC Mark and Sweep Example Mark and Sweep Example CMSC CMSC
9 Mark and Sweep Example CMSC Tradeoffs with Mark and Sweep Pros: No problem with cycles Memory writes have no cost Cons: Fragmentation Available space broken up into many small pieces Thus many mark-and-sweep systems may also have a compaction phase (like defragmenting your disk) Cost proportional to heap size Sweep phase needs to traverse whole heap it touches dead memory to put it back on to the free list Not appropriate for real-time applications You wouldn t like your auto s braking system to stop working for a GC while you are trying to stop at a busy intersection CMSC Stop and Copy GC Like mark and sweep, but only touches live objects Divide heap into two equal parts (semispaces) Only one semispace active at a time At GC time, flip semispaces Trace the live data starting from the Copy live data into other semispace Declare everything in current semispace dead; switch to other semispace Stop and Copy Example CMSC CMSC
10 Stop and Copy Example Stop and Copy Example CMSC CMSC Stop and Copy Example Stop and Copy Tradeoffs CMSC Pros: Only touches live data No fragmentation; automatically compacts Cons: Will probably increase locality Requires twice the memory space Like mark and sweep, need to stop the world Program must stop running to let garbage collector move around data in the heap CMSC
11 The Generational Principle More objects live Object lifetime increases Young objects die quickly; old objects keep living CMSC Generational Collection Long lived objects get copied over and over Idea: Have more than one semispace, divide into generations Older generations collected less often Objects that survive many collections get pushed into older generations Need to track pointers from old to young generations to use as roots for young generation collection One popular setup Generational stop and copy CMSC HotSpot SDK.4.2 Collector Multi-generational, hybrid collector Young gen : stop and copy collector Tenured gen : mark and sweep collector Permanent gen : no collection Why does using a copy collector for the youngest generation make sense? What apps will be penalized by this setup? More Issues in GC (cont d) Stopping is world is a big hit Unpredictable performance Bad for real-time systems Need to stop all threads Without a much more sophisticated GC One-size fits all solution Sometimes, GC just gets in the way But correctness comes first CMSC CMSC
12 What Does GC Mean to You? Ideally, nothing It should make your life easier And shouldn t affect performance too much May even give better performance than you d have with explicit deallocation If GC becomes a problem, hard to solve You can set parameters of the GC You can modify your program But don t optimize too early! Dealing with GC Problems Best idea: Measure where your problems are coming from For HotSpot VM, try running with -verbose:gc Prints out messages with statistics when a GC occurs [GC K->83000K(776768K), secs] [GC 32586K->83372K(776768K), secs] [Full GC K->83769K(776768K), secs] CMSC CMSC GC Parameters Can resize the generations How much to use initially, plus max growth Change the total heap size In terms of an absolute measure In terms of ratio of free/allocated data For server applications, two common tweaks: Make the total heap as big as possible Make the young generation half the total heap Increasing Memory Performance Don t allocate as much memory Less work for your application Less work for the garbage collector Should improve performance (Why only should?) Don t hold on to references Null out pointers in data structures Or use weak references CMSC CMSC
13 Find the Memory Leak class Stack { private Object[] ; private int index; public Stack(int size) { = new Object[size]; } public void push(object o) { [index++] = o; } public void pop() { return [index--]; } } From Haggar, Garbage Collection and the Java Platform Memory Model Answer: pop() leaves item on array; storage not reclaimed. Bad Ideas (Usually) Calling System.gc() This is probably a bad idea You have no idea what the GC will do And it will take a while Managing memory yourself Object pools, free lists, object recycling GC s have been heavily tuned to be efficient CMSC CMSC
Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation
Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need
More informationJava's garbage-collected heap
Sponsored by: This story appeared on JavaWorld at http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html Java's garbage-collected heap An introduction to the garbage-collected heap of the Java
More informationAngelika Langer www.angelikalanger.com. The Art of Garbage Collection Tuning
Angelika Langer www.angelikalanger.com The Art of Garbage Collection Tuning objective discuss garbage collection algorithms in Sun/Oracle's JVM give brief overview of GC tuning strategies GC tuning (2)
More informationGarbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
More informationJonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
More informationMemory Management in the Java HotSpot Virtual Machine
Memory Management in the Java HotSpot Virtual Machine Sun Microsystems April 2006 2 Table of Contents Table of Contents 1 Introduction.....................................................................
More informationUnderstanding Java Garbage Collection
TECHNOLOGY WHITE PAPER Understanding Java Garbage Collection And What You Can Do About It Table of Contents Executive Summary... 3 Introduction.... 4 Why Care About the Java Garbage Collector?.... 5 Classifying
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationGarbage Collection in NonStop Server for Java
Garbage Collection in NonStop Server for Java Technical white paper Table of contents 1. Introduction... 2 2. Garbage Collection Concepts... 2 3. Garbage Collection in NSJ... 3 4. NSJ Garbage Collection
More informationThe Advantages of Dan Grossman CSE303 Spring 2005, Lecture 25
CSE 303: Concepts and Tools for Software Development Dan Grossman Spring 2005 Lecture 25 Memory-Management Idioms Dan Grossman CSE303 Spring 2005, Lecture 25 1 No tools or rule today Review: Java and C
More informationLecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()
CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic
More informationOrganization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.
Organization of Programming Languages CS320/520N Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Names, Bindings, and Scopes A name is a symbolic identifier used
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationMemory management. Announcements. Safe user input. Function pointers. Uses of function pointers. Function pointer example
Announcements Memory management Assignment 2 posted, due Friday Do two of the three problems Assignment 1 graded see grades on CMS Lecture 7 CS 113 Spring 2008 2 Safe user input If you use scanf(), include
More informationChapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
More informationAdvanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationTrace-Based and Sample-Based Profiling in Rational Application Developer
Trace-Based and Sample-Based Profiling in Rational Application Developer This document is aimed at highlighting the importance of profiling in software development and talks about the profiling tools offered
More informationHow to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com
How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic
More informationThe Design of the Inferno Virtual Machine. Introduction
The Design of the Inferno Virtual Machine Phil Winterbottom Rob Pike Bell Labs, Lucent Technologies {philw, rob}@plan9.bell-labs.com http://www.lucent.com/inferno Introduction Virtual Machine are topical
More informationLinked Lists, Stacks, Queues, Deques. It s time for a chainge!
Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems
More informationRecent Advances in Financial Planning and Product Development
Memory Management in Java and Ada Language for safety software development SARA HOSSEINI-DINANI, MICHAEL SCHWARZ & JOSEF BÖRCSÖK Computer Architecture & System Programming University Kassel Wilhelmshöher
More information2 2011 Oracle Corporation Proprietary and Confidential
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
More informationJava Performance Tuning
Summer 08 Java Performance Tuning Michael Finocchiaro This white paper presents the basics of Java Performance Tuning for large Application Servers. h t t p : / / m f i n o c c h i a r o. w o r d p r e
More informationUsing jvmstat and visualgc to Solve Memory Management Problems
Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems
More informationObject Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationJava Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
More informationPractical Performance Understanding the Performance of Your Application
Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance
More informationCOMP 356 Programming Language Structures Notes for Chapter 10 of Concepts of Programming Languages Implementing Subprograms.
COMP 356 Programming Language Structures Notes for Chapter 10 of Concepts of Programming Languages Implementing Subprograms 1 Activation Records activation declaration location Recall that an activation
More informationLecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists
Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse
More informationThe V8 JavaScript Engine
The V8 JavaScript Engine Design, Implementation, Testing and Benchmarking Mads Ager, Software Engineer Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking What is
More informationJava Garbage Collection Best Practices for Sizing and Tuning the Java Heap
IBM Software Group Java Garbage Collection Best Practices for Sizing and Tuning the Java Heap Chris Bailey WebSphere Support Technical Exchange Objectives Overview Selecting the Correct GC Policy Sizing
More informationCS2210: Compiler Construction. Runtime Environment
Compiler s Role in Program Execution When a program is invoked 0x8000000 The OS allocates memory for the program The code is loaded into the main memory Program initializes runtime environment Program
More informationArun Kejariwal. CS229 Project Report
Arun Kejariwal CS229 Project Report Abstract Elasticity of cloud assists in achieving availability of web applicatis by scaling up a cluster as incoming traffic increases and keep operatial costs under
More informationSystem Software Prof. Dr. H. Mössenböck
System Software Prof. Dr. H. Mössenböck 1. Memory Management 2. Garbage Collection 3. Linkers and Loaders 4. Debuggers 5. Text Editors Marks obtained by end-term exam http://ssw.jku.at/misc/ssw/ 1. Memory
More informationProgramming Language Features (cont.) CMSC 330: Organization of Programming Languages. Parameter Passing in OCaml. Call-by-Value
CMSC 33: Organization of Programming Languages Programming Language Features (cont.) Names & binding Namespaces Static (lexical) scopes Dynamic scopes Polymorphism Parametric Subtype Ad-hoc Parameter Passing
More informationMonitoring Java enviroment / applications
Monitoring Java enviroment / applications Uroš Majcen uros@quest-slo.com Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),
More informationlanguage 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationNetBeans Profiler is an
NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that
More informationRestraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
More informationPerformance Improvement In Java Application
Performance Improvement In Java Application Megha Fulfagar Accenture Delivery Center for Technology in India Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Agenda Performance
More informationGarbage Collection: Automatic Memory Management in the Microsoft.NET Framework
Garbage Collection: Automatic Memory Management in the Microsoft.NET Framework Jeffrey Richter This article assumes you re familiar with C and C++ Level of Difficulty 1 2 3 SUMMARY Garbage collection in
More informationPART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
More informationCSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
More informationLecture 18-19 Data Types and Types of a Language
Lecture 18-19 Data Types and Types of a Language April 29, 2014 Data Types and Types of a Language Data, Data Types and Types Type: Generalities Type Systems and Type Safety Type Equivalence, Coercion
More informationProgramming Embedded Systems
Programming Embedded Systems Lecture 13 Overview of memory management Monday Feb 27, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/32 Lecture outline Memory architecture of microcontrollers,
More informationCommon Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
More informationLeak Check Version 2.1 for Linux TM
Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information
More informationCOS 318: Operating Systems
COS 318: Operating Systems File Performance and Reliability Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Topics File buffer cache
More informationLanguage Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc
Language Based Virtual Machines... or why speed matters by Lars Bak, Google Inc Agenda Motivation for virtual machines HotSpot V8 Dart What I ve learned Background 25+ years optimizing implementations
More informationFachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
More informationInterpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
More informationA Practical Method to Diagnose Memory Leaks in Java Application Alan Yu
A Practical Method to Diagnose Memory Leaks in Java Application Alan Yu 1. Introduction The Java virtual machine s heap stores all objects created by a running Java application. Objects are created by
More information2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
More informationGarbage Collection Curriculum
Garbage Collection Curriculum Distributed Systems Group http://www.gsd.inesc-id.pt Paulo Ferreira Luís Veiga Contents Introduction Motivation Terminology Basic Uniprocessor GC Algorithms reference counting
More informationLecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
More informationJava Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload
Java Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload Shrinivas Joshi, Software Performance Engineer Vasileios Liaskovitis, Performance Engineer 1. Introduction
More informationApplication Performance in the Cloud
Application Performance in the Cloud Understanding and ensuring application performance in highly elastic environments Albert Mavashev, CTO Nastel Technologies, Inc. amavashev@nastel.com What is Cloud?
More informationJVM Tool Interface. Michal Pokorný
JVM Tool Interface Michal Pokorný JVM TI Inspect & control execution on JVM (profiling, debugging, monitoring, thread analysis, coverage, ) Higher-level interface: Java Platform Debugger Architecture JVM
More informationAgenda. Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat
Agenda Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat Tomcat Performance Tuning Tomcat Versions Application/System
More informationM 3 : High-Performance Memory Management from Off-the-Shelf Components
M 3 : High-Performance Memory Management from Off-the-Shelf Components David Terei Stanford University dterei@cs.stanford.edu Alex Aiken Stanford University aiken@cs.stanford.edu Jan Vitek Purdue University
More informationMID-TIER DEPLOYMENT KB
MID-TIER DEPLOYMENT KB Author: BMC Software, Inc. Date: 23 Dec 2011 PAGE 1 OF 16 23/12/2011 Table of Contents 1. Overview 3 2. Sizing guidelines 3 3. Virtual Environment Notes 4 4. Physical Environment
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More information6. Storage and File Structures
ECS-165A WQ 11 110 6. Storage and File Structures Goals Understand the basic concepts underlying different storage media, buffer management, files structures, and organization of records in files. Contents
More informationProfiling Java Applications. Kostis Kapelonis - Agilis SA
Profiling Java Applications Kostis Kapelonis - Agilis SA The need for speed Topics Software Quality with FindBugs Using Jconsole Monitoring with Netbeans 6 Profiling CPU with Netbeans 6 Profiling Memory
More informationCisco Unified Contact Center Express and Cisco Unified IP IVR - Best Practices
Cisco Unified Contact Center Express and Cisco Unified IP IVR - Best Practices Cisco Unified Contact Center Express product is a fairly open product which is programmed by the customer or partner to run
More informationChapter 13 Storage classes
Chapter 13 Storage classes 1. Storage classes 2. Storage Class auto 3. Storage Class extern 4. Storage Class static 5. Storage Class register 6. Global and Local Variables 7. Nested Blocks with the Same
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More informationIntroduction to Spark and Garbage Collection
Tuning Java Garbage Collection for Spark Applications May 28, 2015 by Daoyuan Wang and Jie Huang This is a guest post from our friends in the SSG STO Big Data Technology group at Intel. Join us at the
More informationenterprise professional expertise distilled
Oracle JRockit The Definitive Guide Develop and manage robust Java applications with Oracle's high-performance Java Virtual Machine Marcus Hirt Marcus Lagergren PUBLISHING enterprise professional expertise
More informationReal Time Cloud Computing
Real Time Cloud Computing Nitesh Kumar Jangid Amity Institute of Information Technology, Amity University Rajasthan, Jaipur, Rajasthan, India njangid@jpr.amity.edu Proceedings of the 1 st National Conference;
More informationSegmentation and Fragmentation
Segmentation and Fragmentation Operating System Design MOSIG 1 Instructor: Arnaud Legrand Class Assistants: Benjamin Negrevergne, Sascha Hunold September 16, 2010 A. Legrand Segmentation and Fragmentation
More informationVirtual Machine Learning: Thinking Like a Computer Architect
Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2
More informationStorage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More information7.1 Our Current Model
Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.
More informationInstrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
More informationTuning WebSphere Application Server ND 7.0. Royal Cyber Inc.
Tuning WebSphere Application Server ND 7.0 Royal Cyber Inc. JVM related problems Application server stops responding Server crash Hung process Out of memory condition Performance degradation Check if the
More informationrecursion, O(n), linked lists 6/14
recursion, O(n), linked lists 6/14 recursion reducing the amount of data to process and processing a smaller amount of data example: process one item in a list, recursively process the rest of the list
More informationWINDOWS AZURE EXECUTION MODELS
WINDOWS AZURE EXECUTION MODELS Windows Azure provides three different execution models for running applications: Virtual Machines, Web Sites, and Cloud Services. Each one provides a different set of services,
More informationKernel Types System Calls. Operating Systems. Autumn 2013 CS4023
Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
More informationSoftware Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
More informationPC Based Escape Analysis in the Java Virtual Machine
PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of
More informationValidating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
More informationWeb Performance, Inc. Testing Services Sample Performance Analysis
Web Performance, Inc. Testing Services Sample Performance Analysis Overview This document contains two performance analysis reports created for actual web testing clients, and are a good example of the
More informationCloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
More informationStorage Allocation in Typed Languages
Storage Allocation in Typed Languages Butler W. Lampson Xerox Corporation Palo Alto Research Center Appeared in Proc. 5th Ann. III Conf: Implementation and Design of Algorithmic Languages, Guidel, France,
More informationAzul Pauseless Garbage Collection
TECHNOLOGY WHITE PAPER Azul Pauseless Garbage Collection Providing continuous, pauseless operation for Java applications Executive Summary Conventional garbage collection approaches limit the scalability
More informationReal Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
More informationTwo Parts. Filesystem Interface. Filesystem design. Interface the user sees. Implementing the interface
File Management Two Parts Filesystem Interface Interface the user sees Organization of the files as seen by the user Operations defined on files Properties that can be read/modified Filesystem design Implementing
More informationSquashing the Bugs: Tools for Building Better Software
Squashing the Bugs: Tools for Building Better Software Stephen Freund Williams College The Blue Screen of Death (BSOD) USS Yorktown Smart Ship 27 Pentium-based PCs Windows NT 4.0 September 21, 1997: data
More informationCyber Security: Guidelines for Backing Up Information. A Non-Technical Guide
Cyber Security: Guidelines for Backing Up Information A Non-Technical Guide Essential for Executives, Business Managers Administrative & Operations Managers This appendix is a supplement to the Cyber Security:
More informationECS 165B: Database System Implementa6on Lecture 2
ECS 165B: Database System Implementa6on Lecture 2 UC Davis, Spring 2011 Por6ons of slides based on earlier ones by Raghu Ramakrishnan, Johannes Gehrke, Jennifer Widom, Bertram Ludaescher, and Michael Gertz.
More informationData Structures and Data Manipulation
Data Structures and Data Manipulation What the Specification Says: Explain how static data structures may be used to implement dynamic data structures; Describe algorithms for the insertion, retrieval
More informationHolly Cummins IBM Hursley Labs. Java performance not so scary after all
Holly Cummins IBM Hursley Labs Java performance not so scary after all So... You have a performance problem. What next? Goals After this talk you will: Not feel abject terror when confronted with a performance
More informationStack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
More informationUniversity of Southern California Shibboleth High Availability with Terracotta
University of Southern California Shibboleth High Availability with Terracotta Overview Intro to HA architecture with Terracotta Benefits Drawbacks Shibboleth and Terracotta at USC Monitoring Issues Resolved
More informationCSE 403. Performance Profiling Marty Stepp
CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize
More informationReal-world Java 4 beginners. Dima, Superfish github.com/dimafrid
Real-world Java 4 beginners Dima, Superfish github.com/dimafrid Real world Hundreds of computations per second Each computation of sub-second latency Massive IO Lots of data In Web/Trading/Monitoring/Cellular/etc./etc.
More information