An Empirical Analysis of Java Performance Quality

Slides:



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

SPEC OMP Benchmark Suite H. Saito, G. Gaertner, W. Jones, R. Eigenmann, H. Iwashita, R. Lieberman, M. van Waveren, and B. Whitney SPEC High-Performance.
Steve Blackburn Department of Computer Science Australian National University Perry Cheng TJ Watson Research Center IBM Research Kathryn McKinley Department.
1 Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Cambridge University David F. Bacon IBM T.J.Watson Research Center.
Topic 10 Java Memory Management. 1-2 Memory Allocation in Java When a program is being executed, separate areas of memory are allocated for each class.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Heap Shape Scalability Scalable Garbage Collection on Highly Parallel Platforms Kathy Barabash, Erez Petrank Computer Science Department Technion, Israel.
CSC321: Programming Languages 11-1 Programming Languages Tucker and Noonan Chapter 11: Memory Management 11.1 The Heap 11.2 Implementation of Dynamic Arrays.
ParMarkSplit: A Parallel Mark- Split Garbage Collector Based on a Lock-Free Skip-List Nhan Nguyen Philippas Tsigas Håkan Sundell Distributed Computing.
Trace-Based Automatic Parallelization in the Jikes RVM Borys Bradel University of Toronto.
Parallelized variational EM for Latent Dirichlet Allocation: An experimental evaluation of speed and scalability Ramesh Nallapati, William Cohen and John.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
Chapter 10 Storage management
Run-Time Storage Organization
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Garbage Collection Without Paging Matthew Hertz, Yi Feng, Emery Berger University.
1 Utilizing Field Usage Patterns for Java Heap Space Optimization Z. Guo, N. Amaral, D. Szafron and Y. Wang Department of Computing Science University.
Adaptive Cache Compression for High-Performance Processors Alaa R. Alameldeen and David A.Wood Computer Sciences Department, University of Wisconsin- Madison.
Comparison of JVM Phases on Data Cache Performance Shiwen Hu and Lizy K. John Laboratory for Computer Architecture The University of Texas at Austin.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
Mark and Split Kostis Sagonas Uppsala Univ., Sweden NTUA, Greece Jesper Wilhelmsson Uppsala Univ., Sweden.
February 11, 2003Ninth International Symposium on High Performance Computer Architecture Memory System Behavior of Java-Based Middleware Martin Karlsson,
Unified Parallel C at LBNL/UCB FT Benchmark in UPC Christian Bell and Rajesh Nishtala.
The Group Runtime Optimization for High-Performance Computing An Install-Time System for Automatic Generation of Optimized Parallel Sorting Algorithms.
Parallel implementation of RAndom SAmple Consensus (RANSAC) Adarsh Kowdle.
3D Graphics Module Ramesh Srigiriraju. Abstract Project Areas: 3D Graphics, Modular design Purpose: to test data schemes for 3D rotatons Four different.
Exploring Multi-Threaded Java Application Performance on Multicore Hardware Ghent University, Belgium OOPSLA 2012 presentation – October 24 th 2012 Jennifer.
Lists and More About Strings CS303E: Elements of Computers and Programming.
Introduction to Software Development 1. Outline The code-compile-debug process for writing a program The software development process 2.
Titanium/Java Performance Analysis Ryan Huebsch Group: Boon Thau Loo, Matt Harren Joe Hellerstein, Ion Stoica, Scott Shenker P I E R Peer-to-Peer.
A Real-Time Garbage Collector Based on the Lifetimes of Objects Henry Lieberman and Carl Hewitt (CACM, June 1983) Rudy Kaplan Depena CS395T: Memory Management.
A Mostly Non-Copying Real-Time Collector with Low Overhead and Consistent Utilization David Bacon Perry Cheng (presenting) V.T. Rajan IBM T.J. Watson Research.
Workflow Early Start Pattern and Future's Update Strategies in ProActive Environment E. Zimeo, N. Ranaldo, G. Tretola University of Sannio - Italy.
Conrad Benham Java Opcode and Runtime Data Analysis By: Conrad Benham Supervisor: Professor Arthur Sale.
Implementing Parallel Graph Algorithms: Graph coloring Created by: Avdeev Alex, Blakey Paul.
Simulating a $2M Commercial Server on a $2K PC Alaa R. Alameldeen, Milo M.K. Martin, Carl J. Mauer, Kevin E. Moore, Min Xu, Daniel J. Sorin, Mark D. Hill.
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
Simulated Pointers Limitations Of Java Pointers May be used for internal data structures only. Data structure backup requires serialization and deserialization.
 Copyright, HiCLAS1 George Delic, Ph.D. HiPERiSM Consulting, LLC And Arney Srackangast, AS1MET Services
A small excursion Empirical Computer Science Binary Search versus Linear Search.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 1 Automatic Heap Sizing: Taking Real Memory into Account Ting Yang, Emery Berger,
Statistical Analysis of Inlining Heuristics in Jikes RVM Jing Yang Department of Computer Science, University of Virginia.
Investigating the Effects of Using Different Nursery Sizing Policies on Performance Tony Guan, Witty Srisa-an, and Neo Jia Department of Computer Science.
Intro. to Software Engineering 1CSCI 3333 Data Structures.
University of Maryland Towards Automated Tuning of Parallel Programs Jeffrey K. Hollingsworth Department of Computer Science University.
Classes: user-defined types. Organizing method with a class A class is used to organize methods * Methods that compute Mathematical functions * The Scanner.
Classes. Constructor A constructor is a special method whose purpose is to construct and initialize objects. Constructor name must be the same as the.
Big Data Engineering: Recent Performance Enhancements in JVM- based Frameworks Mayuresh Kunjir.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. C H A P T E R F I V E Memory Management.
® 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.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Benchmarking and Applications. Purpose of Our Benchmarking Effort Reveal compiler (and run-time systems) weak points and lack of adequate automatic optimizations.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
Memory Management in Java Mr. Gerb Computer Science 4.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Getting the Most out of Scientific Computing Resources
Getting the Most out of Scientific Computing Resources
Unit-2 Objects and Classes
Improving java performance using Dynamic Method Migration on FPGAs
Skyway: Connecting Managed Heaps in Distributed Big Data Systems
Mark Claypool and Jonathan Tanner Computer Science Department
Architectural Interactions in High Performance Clusters
Wake Up and Smell the Coffee: Evaluation Methodology for the 21st Century May 4th 2017 Ben Lenard.
Immersed Boundary Method Simulation in Titanium Objectives
Interpreting Java Program Runtimes
New GC collectors in Java 11
Program-level Adaptive Memory Management
Run-time environments
Presentation transcript:

An Empirical Analysis of Java Performance Quality Simon Chow

Objectives See if we can enhance the performance of Java applications without modifying the Java code directly Perform test runs with SPECjvm benchmarks to determine the performance quality of the computer

SpecJVM and its Benchmarks A benchmark suite that measures a computer system’s performance through its Java Runtime Environment Serial Benchmark Derby Benchmark Sunflow benchmark Each benchmark has a warmup and iteration phase

Parameters Used For SpecJVM Runs Adjusting Memory Heap Size: –Xmx1g -Xmx2g –Xmx3g For tuning garbage collection: G1GC ConcMarkSweep Parallel

Serial Performance vs Heap Memory Size Data Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 86.51 87.37 94.46 89.45 "-Xmx1g" 85.82 98.74 79.45 88.00 "-Xmx2g 83.70 97.67 75.86 85.74 "-Xmx3g 86.06 96.94 95.67 92.89

Derby Performance vs Heap Memory Size Data   Performance (op/min) Java Parameter Trial 1 Trial 2 Average None 267.99 257.27 262.63 "-Xmx1g" 230.48 265.54 248.01 "-Xmx2g 225.02 241.62 233.32 "-Xmx3g 210.65 260.13 235.39

Garbage Collection Types With Serial Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 94.31 96.20 91.49 94.00 G1 94.18 87.69 96.59 92.82 MarkSweep 90.00 96.28 94.73 93.67 Parallel 96.26 98.52 94.66 96.48

Garbage Collection Types With Derby Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 282.95 299.14 284.41 288.33 G1 303.54 298.83 312.73 305.03 MarkSweep 285.29 259.12 275.20 273.20 Parallel 253.10 284.79 275.78 271.22

Garbage Collection Types With Sunflow Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 46.76 47.73 46.93 47.14 G1 47.19 49.93 51.09 49.40 MarkSweep 50.05 46.99 43.16 46.73 Parallel 44.31 41.80 43.33 43.15

Conclusions Modifying the memory heap size parameter seems to have little to no effect on the Java performance For the garbage collection options, it appears that the G1 garbage collection is faster than both Parallel and MarkSweep

Next Steps Test lower heap memory sizes (i.e 500 MB) Perform further analysis on the garbage collection data to better observe their differences in performance

Questions ?