A JVM Does That??? Cliff Click
|
|
|
- Leo Booker
- 10 years ago
- Views:
Transcription
1 A JVM Does That??? Cliff Click
2 A JVM Does That??? Been a JVM Engineer for over a decade I'm still amazed at what goes in a JVM Services have increased over time Many new services painfully "volunteered" by naive change in specs
3 Some JVM Services High Quality GC Parallel, Concurrent, Collection Low total allocation cost High Quality Machine Code Generation Two JITs, JIT'd Code Management, Profiling Bytecode cost model Uniform Threading & Memory Model Locks (synchronization), volatile, wait, notify Type Safety
4 Some JVM Services Dynamic Code Loading Class loading, Deoptimization, re-jit'ing Quick high-quality Time Access System.currentTimeMillis Internal introspection services Reflection, JNI, JVMTI, JVMDI/JVMPI, Agents Access to huge pre-built library Access to OS threads, scheduling, priorities, native code
5 Too Many Services? Where did all this come from? Mostly incrementally added over time The Language, JVM, & Hardware all co-evolved e.g. incremental addition of finalizers, JMM, 64-bits Support for high core-count machines Why Did We Add All These Services? Because Illusions Are Powerful Abstractions
6 The 'V' in JVM "Virtual" Its a Great Abstraction Programmers focus on value-add elsewhere JVM Provides Services The selection of Services is ad-hoc Grown over time as needed Some services are unique to Java or the JVM Many services overlap with existing OS services But sometimes have different requirements
7 Agenda Introduction (just did that) Illusions We Have Illusions We Think We Have or Wish We Had Sorting Our Illusions Out
8 Illusion: Infinite Memory Garbage Collection The Infinite Heap Illusion Just allocate memory via 'new' Do not track lifetime, do not 'free' GC figures out What's Alive and What's Dead Vastly easier to use than malloc/free Fewer bugs, quicker time-to-market Enables certain kinds of concurrent algorithms Just too hard to track liveness otherwise
9 Illusion: Infinite Memory GC have made huge strides in the last decade Production-ready robust, parallel, concurrent Still major user pain-point Too many tuning flags, GC pauses, etc Major Vendor point of differentiation, active dev Throughput varies by maybe 30% Pause-times vary over 6 orders of magnitude (Azul GPGC: 100's of Gig's w/10msec) (Stock full GC pause: 10's of Gig's w/10sec) (IBM Metronome: 100's Megs w/10microsec)
10 Illusion: Bytecodes Are Fast Class files are a lousy way to describe programs There are better ways to describe semantics than Java bytecodes But we're stuck with them for now Main win: hides CPU details Programmers rely on them being "fast" It's a big Illusion: Interpretation is slow JIT'ing brings back the "expected" cost model
11 Illusion: Bytecodes Are Fast JVMs eventually JIT bytecodes To make them fast! Some JITs are high quality optimizing compilers Amazingly complex beasties in their own rights i.e. JVMs bring "gcc -O2" to the masses But cannot use "gcc"-style compilers directly: Tracking OOPs (ptrs) for GC Java Memory Model (volatile reordering & fences) New code patterns to optimize
12 Illusion: Bytecodes Are Fast JIT'ing requires Profiling Because you don't want to JIT everything Profiling allows focused code-gen Profiling allows better code-gen Inline whats hot Loop unrolling, range-check elimination, etc Branch prediction, spill-code-gen, scheduling JVMs bring Profiled code to the masses!
13 Illusion: virtual calls are fast C++ avoids virtual calls because they are slow Java embraces them and makes them fast Well, mostly fast JIT's do Class Hierarchy Analysis CHA turns most virtual calls into static calls JVM detects new classes loaded, adjusts CHA May need to re-jit When CHA fails to make the call static, inline caches When IC's fail, virtual calls are back to being slow
14 Illusion: Partial Programs Are Fast JVMs allow late class loading, name binding i.e. classforname Partial programs are as fast as whole programs Adding new parts in (e.g. Class loading) is "cheap" May require: deoptimization, re-profiling, re-jit Deoptimzation is a hard problem also
15 Illusion: Consistent Memory Models ALL machines have different memory models The rules on visibility vary widely from machines And even within generations of the same machine X86 is very conservative, so is Sparc Power, MIPS less so IA64 & Azul very aggressive Program semantics depend on the JMM So must match the JMM Else program meaning would depend on hardware!
16 Illusion: Consistent Memory Models Very different hardware memory models None match the Java Memory Model The JVM bridges the gap - While keeping normal loads & stores fast Via combinations of fences, code scheduling, placement of locks & CAS ops Requires close cooperation from the JITs Requires detailed hardware knowledge
17 Illusion: Consistent Thread Models Very different OS thread models Linux, Solaris, AIX But also cell phones, ipad, etc Java just does 'new Thread' On micro devices to 1000-cpu giant machines and synchronized, wait, notify, join, etc, all just work
18 Illusion: Locks are Fast Contended locks obviously block and must involve the OS (Expect fairness from the OS) Uncontended locks are a dozen nano's or so Biased locking: ~2-4 clocks (when it works) Very fast user-mode locks otherwise Highly optimized because synchronized is so common
19 Illusion: Locks are Fast People don't know how to program concurrently The 'just add locks until it works' mentality i.e. Lowest-common-denominator programming So locks became common So JVMs optimized them This enabled a particular concurrent programming style And we, as an industry, learned alot about concurrent programming as a result
20 Illusion: Quick Time Access System.currentTimeMillis Called billions of times/sec in some benchmarks Fairly common in all large java apps Real Java programs expect that: if T1's Sys.cTM < T2's Sys.cTM then T1 <<<happens_before T2 But cannot use, e.g. X86's "tsc" register Value not coherent across CPUs Not consistent, e.g. slow ticking in low-power mode Monotonic per CPU but not per-thread
21 Illusion: Quick Time Access System.currentTimeMillis Switching from fastest linux gettimeofday call (mostly-user-mode atomic time struct read) gettimeofday gives quality time To a plain load (updated by background thread) Was worth 10% speed boost on key benchmark Hypervisors like to "idealize" tsc : Means: uniform monotonic ticking Means: slows access to tsc by 100x?
22 Agenda Introduction (just did that) Illusions We Have Illusions We Think We Have or Wish We Had Sorting Our Illusions Out
23 Illusions We'd Like To Have Infinite Stack e.g. Tail calls. Useful in some functional languages Running-code-is-data e.g. Closures 'Integer' is as cheap as 'int' e.g. Auto-boxing optimizations 'BigInteger' is as cheap as 'int' e.g. Tagged integer math, silent overflow to infinite precision integers
24 Illusions We'd Like To Have Atomic Multi-Address Update e.g. Software Transactional Memory Fast alternative call bindings e.g. invokedynamic
25 Illusions We Think We Have This mass of code is maintainable: HotSpot is approaching 15yrs old Large chunks of code are fragile (or very 'fluffy' per line of code) Very slow new-feature rate-of-change Azul Systems has been busy rewriting lots of it Many major subsystems are simpler, faster, lighter >100K diffs from OpenJDK
26 Illusions We Think We Have Thread priorities Mostly none on Linux without root permission But also relative to entire machine, not JVM Means a low-priority JVM with high priority threads e.g. Concurrent GC threads trying to keep up...can starve a medium-priority JVM Write-once-run-anywhere Scale matters: programs for very small or very large machines are different
27 Illusions We Think We Have Finalizers are Useful They suck for reclaiming OS resources Because no timeliness guarantees Code "eventually" runs, but might be never e.g. Tomcat requires a out-of-file-handles situation trigger a FullGC to reclaim finalizers to recycle OS file handles What other out-of-os resources situations need to trigger a GC? Do we really want to code our programs this way?
28 Illusions We Think We Have Soft, Phantom Refs are Useful Again using GC to manage a user resource e.g. Use GC to manage Caches Low memory causes rapid GC cycles causes soft refs to flush causes caches to empty causes more cache misses causes more application work causes more allocation causes rapid GC cycles
29 Agenda Introduction (just did that) Illusions We Have Illusions We Think We Have or Wish We Had Sorting Our Illusions Out
30 Services Summary Services provided by JVM GC, JIT'ing, JMM, thread management, fast time Hiding CPU details & hardware memory model Services provided below the JVM (OS) Threads, context switching, priorities, I/O, files, virtual memory protection, Services provided above the JVM (App) Threadpools & worklists, transactions, cypto, caching, models of concurrent programming Alt languages: new dispatch, big ints, alt conc
31 Move to OS: Fast Quality Time JVM provides fast quality time Fast not quality from X86 'tsc' Quality not fast from OS gettimeofday This should be an OS service Tick memory word 1000/sec Update with kernel thread or timer Read-only process-shared page This CTM is a coherent across CPUs on a clock-cycle basis
32 Move to OS: Thread Priorities OS provides thread priorities at the process level Higher priority JVMs can/should starve lower ones JVM also needs thread priorities within-process GC threads need cycles before mutator threads Or else that concurrent GC will won't be concurrent And the mutator will block for a GC cycle JIT threads need cycles Or else the 1000-runnable threads will starve the JIT And the program will always run interpreted
33 Move to OS: Thread Priorities Right now Azul is faking thread priorities With duty-cycle style locks & blocks Required for a low-pauses concurrent collector Per-process Thread Priorities belong in the OS OS already does process priorities & context switches Also, cannot raise thread priorities without 'root' Lowering mutator priorities changes behavior wrt non-java processes
34 Keep Above JVM: Alternative Concurrency JVM provides thread management, fast locks Many new langs have new concurrency ideas Actors, Msg-passing, STM, Fork/Join are a few JVM too big, too slow to move fast here Should experiment 'above' the JVM...at least until we get some concensus on The Right Way To Do Concurrency Then JVM maybe provides building blocks e.g. park/unpark or a specific kind of STM
35 Move to JVM: Fixnums Fixnums belong in the JVM, not language impl JVM provides 'int' & 'long' Many languages want 'ideal int' Obvious java translation to infinite math is inefficient Really want some kind of tagged integer Requires JIT support to be really efficient I think "64bits ought to be enough for anybody" You (app-level programmer) know if you might need more Don't make everybody else pay for it
36 Keep in JVM: GC, JIT'ing, JMM, Type Safety JIT'ing (by itself) belongs above the OS and below the App so in the JVM GC requires deep hooks into the JIT'ing process And also makes sense below the App The JMM requires deep hooks into the JIT also And again (mostly) makes sense below the App Some alternative concurrency models would expose weaker MMs to the App, would enable faster, cheaper hardware but this is still going require close JIT cooperation
37 Move Above JVM: OS Resource Lifetime Move outside-the-jvm resource lifetime control out of Finalizers Make the app do e.g. ref-counting or 'arena' or other lifetime management Do not burden GC with knowledge that more of resource 'X' can be had running finalizers Move weak/soft/phantom refs to the App GC should not change application semantics
38 Summary OS JVM Application Virtual- Memory Context- Switches Files, I/O Cliff Click Type-Safe Memory GC JIT'ing & Code Management JMM Fast Locks Thread Management Thread Priorities Fast Time OS Resource Management Alternative- Concurrency STM / FJ Fixnums Tail Calls Closures
39 Move To JVM (Azul): Virtual / Physical Mappings Azul's GPGC does aggressive virtual-memory to physical-memory remappings Tbytes/sec remapping rates mmap() & friends too slow Need OS hacks to expose hardware TLB Still safe across processes But within process can totally screw self up
40 Move To JVM (Azul): Hardware Perf Counters JVM is already doing profile-directed compilation Natural consumer of HW Perf Counters JVM can map perf counters to bytecodes JIT's code, manages JIT'd code "hotcode" mapped back to user's bytecodes Want quickest & thin-est way to expose HW perf counters to JVM
41 Summary (Azul) OS Virtual / Physical- Memory Mapping HW Perf Counters Azul's JVM GPGC Profiling Thread Priorities Fast Time Application Cliff Click
42 Summary There's Work To Do (full employment contract for JVM engineers) Cliff Click
Java Performance. Adrian Dozsa TM-JUG 18.09.2014
Java Performance Adrian Dozsa TM-JUG 18.09.2014 Agenda Requirements Performance Testing Micro-benchmarks Concurrency GC Tools Why is performance important? We hate slow web pages/apps We hate timeouts
Jonathan 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.
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Lua as a business logic language in high load application. Ilya Martynov [email protected] CTO at IPONWEB
Lua as a business logic language in high load application Ilya Martynov [email protected] CTO at IPONWEB Company background Ad industry Custom development Technical platform with multiple components Custom
Validating 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
Cloud 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
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition
Chapter 16: Virtual Machines Silberschatz, Galvin and Gagne 2013 Chapter 16: Virtual Machines Overview History Benefits and Features Building Blocks Types of Virtual Machines and Their Implementations
Garbage 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
Tomcat Tuning. Mark Thomas April 2009
Tomcat Tuning Mark Thomas April 2009 Who am I? Apache Tomcat committer Resolved 1,500+ Tomcat bugs Apache Tomcat PMC member Member of the Apache Software Foundation Member of the ASF security committee
Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat
Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat Why Computers Are Getting Slower The traditional approach better performance Why computers are
Parrot in a Nutshell. Dan Sugalski [email protected]. Parrot in a nutshell 1
Parrot in a Nutshell Dan Sugalski [email protected] Parrot in a nutshell 1 What is Parrot The interpreter for perl 6 A multi-language virtual machine An April Fools joke gotten out of hand Parrot in a nutshell
Holly 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
Understanding Hardware Transactional Memory
Understanding Hardware Transactional Memory Gil Tene, CTO & co-founder, Azul Systems @giltene 2015 Azul Systems, Inc. Agenda Brief introduction What is Hardware Transactional Memory (HTM)? Cache coherence
CSCI 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
Zing 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
The Fundamentals of Tuning OpenJDK
The Fundamentals of Tuning OpenJDK OSCON 2013 Portland, OR Charlie Hunt Architect, Performance Engineering Salesforce.com sfdc_ppt_corp_template_01_01_2012.ppt In a Nutshell What you need to know about
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
Extreme Performance with Java
Extreme Performance with Java QCon NYC - June 2012 Charlie Hunt Architect, Performance Engineering Salesforce.com sfdc_ppt_corp_template_01_01_2012.ppt In a Nutshell What you need to know about a modern
Mark Bennett. Search and the Virtual Machine
Mark Bennett Search and the Virtual Machine Agenda Intro / Business Drivers What to do with Search + Virtual What Makes Search Fast (or Slow!) Virtual Platforms Test Results Trends / Wrap Up / Q & A Business
2 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,
Java 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
How To Use Java On An Ipa 2.2.2 (Jspa) With A Microsoft Powerbook (Jempa) With An Ipad 2.3.2 And A Microos 2.5 (Microos)
Java Monitoring and Diagnostic Tooling Iris Baron IBM Java JIT on System Z [email protected] Session ID: 16182 Insert Custom Session QR if Desired. Java Road Map Java 7.0 Language Updates Java 6.0 SE 5.0
Gary Frost AMD Java Labs [email protected]
Analyzing Java Performance Using Hardware Performance Counters Gary Frost AMD Java Labs [email protected] 2008 by AMD; made available under the EPL v1.0 2 Agenda AMD Java Labs Hardware Performance Counters
Practical 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
Java Coding Practices for Improved Application Performance
1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the
PART 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
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
Mission-Critical Java. An Oracle White Paper Updated October 2008
Mission-Critical Java An Oracle White Paper Updated October 2008 Mission-Critical Java The Oracle JRockit family of products is a comprehensive portfolio of Java runtime solutions that leverages the base
Azul 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
10.04.2008. Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details
Thomas Fahrig Senior Developer Hypervisor Team Hypervisor Architecture Terminology Goals Basics Details Scheduling Interval External Interrupt Handling Reserves, Weights and Caps Context Switch Waiting
Linux Scheduler. Linux Scheduler
or or Affinity Basic Interactive es 1 / 40 Reality... or or Affinity Basic Interactive es The Linux scheduler tries to be very efficient To do that, it uses some complex data structures Some of what it
Virtual 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
Language 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
COS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms
THE BUSY DEVELOPER'S GUIDE TO JVM TROUBLESHOOTING
THE BUSY DEVELOPER'S GUIDE TO JVM TROUBLESHOOTING November 5, 2010 Rohit Kelapure HTTP://WWW.LINKEDIN.COM/IN/ROHITKELAPURE HTTP://TWITTER.COM/RKELA Agenda 2 Application Server component overview Support
What s Cool in the SAP JVM (CON3243)
What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP
JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing
JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing January 2014 Legal Notices JBoss, Red Hat and their respective logos are trademarks or registered trademarks of Red Hat, Inc. Azul
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Java Troubleshooting and Performance
Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize
Eclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance Monitoring Chris Laffra IBM Ottawa Labs http://eclipsefaq.org/chris Chris Laffra Eclipse Visualization and Performance Monitoring Page 1 Roadmap Introduction Introspection
Fachbereich 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
Enabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive Environments Matt Schuetze, Product Manager, Azul Systems Utah JUG, Murray UT, November 20, 2014 High level agenda Intro, jitter vs. JITTER Java in a low latency application
Understanding 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
Interpreters 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.
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Tool - 1: Health Center
Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
An Oracle White Paper September 2013. Advanced Java Diagnostics and Monitoring Without Performance Overhead
An Oracle White Paper September 2013 Advanced Java Diagnostics and Monitoring Without Performance Overhead Introduction... 1 Non-Intrusive Profiling and Diagnostics... 2 JMX Console... 2 Java Flight Recorder...
Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications
Mobile Devices - An Introduction to the Android Operating Environment Design, Architecture, and Performance Implications Dominique A. Heger DHTechnologies (DHT) [email protected] 1.0 Introduction With
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Real-Time Scheduling 1 / 39
Real-Time Scheduling 1 / 39 Multiple Real-Time Processes A runs every 30 msec; each time it needs 10 msec of CPU time B runs 25 times/sec for 15 msec C runs 20 times/sec for 5 msec For our equation, A
Effective Java Programming. measurement as the basis
Effective Java Programming measurement as the basis Structure measurement as the basis benchmarking micro macro profiling why you should do this? profiling tools Motto "We should forget about small efficiencies,
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
In-memory Tables Technology overview and solutions
In-memory Tables Technology overview and solutions My mainframe is my business. My business relies on MIPS. Verna Bartlett Head of Marketing Gary Weinhold Systems Analyst Agenda Introduction to in-memory
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Operating System Overview. Otto J. Anshus
Operating System Overview Otto J. Anshus A Typical Computer CPU... CPU Memory Chipset I/O bus ROM Keyboard Network A Typical Computer System CPU. CPU Memory Application(s) Operating System ROM OS Apps
Trace-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
Angelika 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)
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Using 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
Zulu by Azul OpenJDK for Azure
Zulu by Azul OpenJDK for Azure surely a tongue-twister in any spoken language A presentation to Azure CEE Open Source in the Cloud November 27, 2013 Matt Schuetze, Director of Product Management Azul Systems
find model parameters, to validate models, and to develop inputs for models. c 1994 Raj Jain 7.1
Monitors Monitor: A tool used to observe the activities on a system. Usage: A system programmer may use a monitor to improve software performance. Find frequently used segments of the software. A systems
Java Virtual Machine: the key for accurated memory prefetching
Java Virtual Machine: the key for accurated memory prefetching Yolanda Becerra Jordi Garcia Toni Cortes Nacho Navarro Computer Architecture Department Universitat Politècnica de Catalunya Barcelona, Spain
Last 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
Tuning 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
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
CHAPTER 1 INTRODUCTION
1 CHAPTER 1 INTRODUCTION 1.1 MOTIVATION OF RESEARCH Multicore processors have two or more execution cores (processors) implemented on a single chip having their own set of execution and architectural recourses.
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
Shared Address Space Computing: Programming
Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model
Berlin Mainframe Summit. Java on z/os. 2006 IBM Corporation
Java on z/os Martina Schmidt Agenda Berlin Mainframe Summit About the mainframe Java runtime environments under z/os For which applications should I use a mainframe? Java on z/os cost and performance Java
Apache Tomcat Tuning for Production
Apache Tomcat Tuning for Production Filip Hanik & Mark Thomas SpringSource September 2008 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Java 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
Top 10 reasons your ecommerce site will fail during peak periods
An AppDynamics Business White Paper Top 10 reasons your ecommerce site will fail during peak periods For U.S.-based ecommerce organizations, the last weekend of November is the most important time of the
Pete s All Things Sun: Comparing Solaris to RedHat Enterprise and AIX Virtualization Features
Pete s All Things Sun: Comparing Solaris to RedHat Enterprise and AIX Virtualization Features PETER BAER GALVIN Peter Baer Galvin is the chief technologist for Corporate Technologies, a premier systems
Performance Tools for Parallel Java Environments
Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Low level Java programming With examples from OpenHFT
Low level Java programming With examples from OpenHFT Peter Lawrey CEO and Principal Consultant Higher Frequency Trading. Presentation to Joker 2014 St Petersburg, October 2014. About Us Higher Frequency
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization
Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A
Real-Time Java for Latency Critical Banking Applications. Bertrand Delsart JavaRTS Technical Leader Author of Sun's RTGC technology
Real-Time Java for Latency Critical Banking Applications Bertrand Delsart JavaRTS Technical Leader Author of Sun's RTGC technology R eal-time S ystem Agenda Background Benefits of a Real-Time Java Virtual
VLIW Processors. VLIW Processors
1 VLIW Processors VLIW ( very long instruction word ) processors instructions are scheduled by the compiler a fixed number of operations are formatted as one big instruction (called a bundle) usually LIW
1 Storage Devices Summary
Chapter 1 Storage Devices Summary Dependability is vital Suitable measures Latency how long to the first bit arrives Bandwidth/throughput how fast does stuff come through after the latency period Obvious
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui
Driving force. What future software needs. Potential research topics
Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #
Realtime Linux Kernel Features
Realtime Linux Kernel Features Tim Burke, Red Hat, Director Emerging Technologies Special guest appearance, Ted Tso of IBM Realtime what does it mean to you? Agenda What? Terminology, Target capabilities
How To Write A Multi Threaded Software On A Single Core (Or Multi Threaded) System
Multicore Systems Challenges for the Real-Time Software Developer Dr. Fridtjof Siebert aicas GmbH Haid-und-Neu-Str. 18 76131 Karlsruhe, Germany [email protected] Abstract Multicore systems have become
SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I)
SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics
Cliff Click [email protected] http://cliffc.org/blog http://0xdata.com. 0xdata Big Data Small Computers
Cliff Click [email protected] http://cliffc.org/blog http://0xdata.com 0xdata Big Data Small Computers agenda Marketing / Biz RAIN & H2O JMM & Parallel Computation Fork / Join Goals Reality Check Marketing
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
CS5460: Operating Systems. Lecture: Virtualization 2. Anton Burtsev March, 2013
CS5460: Operating Systems Lecture: Virtualization 2 Anton Burtsev March, 2013 Paravirtualization: Xen Full virtualization Complete illusion of physical hardware Trap _all_ sensitive instructions Virtualized
