Future of JRockit & Tools

Similar documents
Java performance - not so scary after all

Java On Steroids: Sun s High-Performance Java Implementation. History

Parley: Federated Virtual Machines

Requirements and Issues of V**s for Mobile Terminals

Optimising Multicore JVMs. Khaled Alnowaiser

Servlet Performance and Apache JServ

How to keep capacity predictions on target and cut CPU usage by 5x

Just-In-Time Compilation

A JVM Does What? Eva Andreasson Product Manager, Azul Systems

Top Ten Enterprise Java performance problems. Vincent Partington Xebia

Typical Issues with Middleware

SPECjbb2005. Alan Adamson, IBM Canada David Dagastine, Sun Microsystems Stefan Sarne, BEA Systems

Azul Systems, Inc.

Parallelism: The Real Y2K Crisis. Darek Mihocka August 14, 2008

Understanding Hardware Transactional Memory

Habanero Extreme Scale Software Research Project

Using Java for Scientific Computing. Mark Bul EPCC, University of Edinburgh

Ryan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation

Delft-Java Link Translation Buffer

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups

Real Time: Understanding the Trade-offs Between Determinism and Throughput

History Introduction to Java Characteristics of Java Data types

Pause-Less GC for Improving Java Responsiveness. Charlie Gracie IBM Senior Software charliegracie

OS-caused Long JVM Pauses - Deep Dive and Solutions

September 15th, Finagle + Java. A love story (

Java Without the Jitter

JDK 9/10/11 and Garbage Collection

2 Introduction to Java. Introduction to Programming 1 1

A JAVA VIRTUAL MACHINE FOR RISC-V PORTING THE JIKES RESEARCH VM

Low Latency Java in the Real World

Audience. Revising the Java Thread/Memory Model. Java Thread Specification. Revising the Thread Spec. Proposed Changes. When s the JSR?

Fundamentals of GC Tuning. Charlie Hunt JVM & Performance Junkie

Fiji VM Safety Critical Java

Faster Objects and Arrays. Closing the [last?] inherent C vs. Java speed gap

History of Enterprise Java

Runtime Application Self-Protection (RASP) Performance Metrics

Hyperion System 9 BI+ Analytic Services

Introduction to Scientific Computing

ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA. 18 October 2017

Virtualizing JBoss Enterprise Middleware with Azul

The Impact of a Real-Time JVM on Middleware Performance: Lessons Learned from Implementing DDS on IBM s J9

Java Performance Analysis for Scientific Computing

Performance Per Watt. Native code invited back from exile with the Return of the King:

Installing DevPartner Java Edition Release 4.1

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

ECE 486/586. Computer Architecture. Lecture # 2

CS221: Algorithms and Data Structures. Asymptotic Analysis. Alan J. Hu (Borrowing slides from Steve Wolfman)

Kodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd.

BEA JRockit. Introduction to BEA JRockit SDK

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2

Enabling Java in Latency Sensitive Environments

Scaling the OpenJDK. Claes Redestad Java SE Performance Team Oracle. Copyright 2017, Oracle and/or its afliates. All rights reserved.

CHAPTER 16 - VIRTUAL MACHINES

SPEC* Java Platform Benchmarks and Their Role in the Java Technology Ecosystem. *Other names and brands may be claimed as the property of others.

Workload Characterization and Optimization of TPC-H Queries on Apache Spark

2

PERFORMANCE ANALYSIS AND OPTIMIZATION OF SKIP LISTS FOR MODERN MULTI-CORE ARCHITECTURES

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Attila Szegedi, Software

Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java)

Designing experiments Performing experiments in Java Intel s Manycore Testing Lab

Benchmarking/Profiling (In)sanity

The Eclipse Parallel Tools Platform Project

Java in Virtual Machines on VMware ESX: Best Practices

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications

Synchronization SPL/2010 SPL/20 1

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

What a Year! Java 10 and 10 Big Java Milestones

Introducing Collaboration to Single User Applications

ILP Ends TLP Begins. ILP Limits via an Oracle

Don t Get Caught In the Cold, Warm-up Your JVM Understand and Eliminate JVM Warm-up Overhead in Data-parallel Systems

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++

Zing Vision. Answering your toughest production Java performance questions

DevPartner Java Edition System Requirements Release 4.3

Virtual Execution Environments: Opportunities and Challenges

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Hyper-V Top performance and capacity tips

Performance Profiling

Jigsaw and OSGi: What the Heck Happens Now?

Towards Parallel, Scalable VM Services

Adapter pattern. Acknowledgement: Freeman & Freeman

Managed runtimes & garbage collection

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler

The New Java Technology Memory Model

New Java performance developments: compilation and garbage collection

Exploiting the Behavior of Generational Garbage Collector

Computer Architecture

The Fundamentals of JVM Tuning

DQpowersuite. Superior Architecture. A Complete Data Integration Package

BEAWebLogic. Platform. 8.1 Supported Configurations: Red Hat Enterprise Linux 4.0 AS, ES on Itanium

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

Profiling and Workflow

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011

The Z Garbage Collector An Introduction

Oracle JRockit. Performance Tuning Guide Release R28 E

Java Performance Tuning and Optimization Student Guide

Azul Disrupts the ROI Equation for High Performance Applications

Android Debugging ART

Transcription:

Future of JRockit & Tools Or finding the right layer to attack Joakim Dahlstedt 15 September 2004

A Short Background on JRockit Server-centric JVM Java compatible (most of the Java libraries are Suns) Available free of charge (as any other JVM) Uses adaptive optimization code generation, memory management, locking primitives Built-in observability Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 2

Background JRockit - Continued Code Execution No interpreter JIT-Compiler Dynamically optimizing compiler Ability to save code to disc Memory-management Concurrent or Stop-the world GC Single-spaced or Generational GC Ability to switch between these on-the-fly In summary Mostly very similar to Sun s Hotspot or IBM JDK Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 3

Performance - Getting Good Enough Code Performance is very seldomly an issue Exceptions trading & high performance computing GC is sometimes an issue Need better predictability Memory footprint is sometimes an issue Java is getting mature Still the list of things to do is infinite Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 4

What s Problem With An Infinite List? The Compiler Writer s dilemma There will always be more optimizations This means the list of optimizations is infinite Hard problem: infinite list of opportunities, which task is the best at this point? Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 5

The Layer Phenomenon App App JVM App JVM JVM Why? HW HW HW 1998 Goal 2004 Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 6

Share the Burden My belief: share the burden with the developers Translate problems we can t solve into something that makes sense to them that they can solve Can t we solve the upper layer problems in the VEE itself? Why is the translation needed? Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 7

VEEs Can t Solve Some Problems VEE optimizations cannot attack algorithmical inefficiencies (at least not yet) VEE optimizations cannot attack memory leaks VEE optimizations cannot attack some structural inefficiencies. Two choices: Ignore problem we can t solve it Expose problem to the developers help them solve the problem Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 8

A Glance At Large Systems In a large system it s hard to find the bottlenecks No single developer knows the whole system The project is using multiple third components These 3rd party components are using other 3rd party compoents Many these components may not even have been tried together ever before. Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 9

Change Perspective The Normal User does not know what happens far underneath her Data Reporting from the VEE At best report what happens from its viewpoint Excludes much data Abstraction becomes a burden To understand the data you need to know a lot about the lower layers The VEE needs to switch perspective Transform data to a form that makes sense to the user Expose data that the user really can take advantage of without knowing all about all the lower layers Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 10

Exposing VEE data Execution data Lock contention data Memory leak information Pause-times Cache-miss patterns Exposing this data is almost free Part of the normal adaptive optimization phase Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 11

JRockit Runtime Analyzer Started off as a tool for internal purposes Collect customer profiles for future optimization opportunities A poor man s profiler Method execution profile GC profile Exception information Two phased approach Generate data dump Use GUI tool to analyze the data Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 12

JRockit - Memory Leak Detection We are the memory management system It s relatively easy for us to answer questions like Is this application growing? What types are growing? Which types points to this type? Who points to this particular instance? In addition it is fairly easy for us to Give this information to the user at anytime To tell the user exactly when a certain structure is updated Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 13

JRockit - Expose the Memory Wall VEE vendors know memory latency is a problem We are not exposing the problem to upper layers In fact hardware is fairly bad at exposing the cache-misses (e.g. on Intel architectures its hard to access this data from user mode) Provide cache-miss data by Java-source line Work with tool vendors to make sure there are new memory latency perspectives in the profiling tools. Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 14

Upper Layers & VEE cooperation No matter were we draw the line: upper layers have to communicate with the lower layers lower-layers have to communicate with the upper layers e.g. JSR 166 java.util.concurrency e.g. WMI perfmon VEEs should provide means for upper layers to communicate performance data to lower layers Invitational Workshop on the Future of VEEs September 2004-2004 BEA Systems, Inc. 15

www.bea.com