Conrad Benham 20001 Java Opcode and Runtime Data Analysis By: Conrad Benham Supervisor: Professor Arthur Sale.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

More Intel machine language and one more look at other architectures.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
Review of the MIPS Instruction Set Architecture. RISC Instruction Set Basics All operations on data apply to data in registers and typically change the.
Binghamton University CS-220 Spring 2015 Binghamton University CS-220 Spring 2015 Object Code.
Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application.
JAVA Processors and JIT Scheduling. Overview & Literature n Formulation of the problem n JAVA introduction n Description of Caffeine * Literature: “Java.
Designing a Virtual Machine. Basic Approach Object-oriented design Try to model the hardware. Seek a level of detail that is appropriate for interpretation.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Run-Time Storage Organization
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Introduction to Java.
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Compiler Construction Lecture 17 Mapping Variables to Memory.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Introduction to Java Kumar Harshit. Objectives ( 목적지 ) At the end of the lesson, the student should be able to: ● Describe the features of Java technology.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
JVM And CLR Dan Agar April 16, Outline Java and.NET Design Philosophies Overview of Virtual Machines Technical Look at JVM and CLR Comparison of.
Arpit Jain Mtech1. Outline Introduction Dalvik VM Java VM Examples Comparisons Experimental Evaluation.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
Implement High-level Program Language on JVM CSCE 531 ZHONGHAO LIU ZHONGHAO LIU XIAO LIN.
Instruction Set Architecture
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 2: Major Concepts of Programming.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
ITEC 352 Lecture 12 ISA(3). Review Buses Memory ALU Registers Process of compiling.
CS 147 June 13, 2001 Levels of Programming Languages Svetlana Velyutina.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Virtual Machines, Interpretation Techniques, and Just-In-Time Compilers Kostis Sagonas
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
M. Mateen Yaqoob The University of Lahore Spring 2014.
Challenges and Solutions for Embedded Java Michael Wortley Computer Integrated Surgery March 1, 2001.
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
Software Development Introduction
Multithreading The objectives of this chapter are: To understand the purpose of multithreading To describe Java's multithreading mechanism.
DR. MIGUEL ÁNGEL OROS HERNÁNDEZ 2. Software de bajo nivel.
Introduction to Programming 1 1 2Introduction to Java.
RealTimeSystems Lab Jong-Koo, Lim
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Topics to be covered Instruction Execution Characteristics
Java™ 2 Platform Getting Started.
Before You Begin Nahla Abuel-ola /WIT.
The Java Virtual Machine (JVM)
Operating System Interface between a user and the computer hardware
Execution time Execution Time (processor-related) = IC x CPI x T
Key Ideas from day 1 slides
A Closer Look at Instruction Set Architectures
Topic: Difference b/w JDK, JRE, JIT, JVM
Introduction Enosis Learning.
Improving java performance using Dynamic Method Migration on FPGAs
GSP 215 Competitive Success-- snaptutorial.com
Introduction Enosis Learning.
ECE243 Interpreter Lab.
Java Byte Codes (0xCAFEBABE) cs205: engineering software
Computer Organization & Compilation Process
CSc 453 Interpreters & Interpretation
(Computer fundamental Lab)
Execution time Execution Time (processor-related) = IC x CPI x T
RUN-TIME STORAGE Chuen-Liang Chen Department of Computer Science
M S COLLEGE ART’S, COMM., SCI. & BMS
CSc 453 Interpreters & Interpretation
Presentation transcript:

Conrad Benham Java Opcode and Runtime Data Analysis By: Conrad Benham Supervisor: Professor Arthur Sale

Conrad Benham Project Goals To collect data on Java’s: Opcodes, Runtime System and Create a program to automate this. These statistics will be used by Professor Sale to create an optimised Hardware Java Virtual Machine (JVM).

Conrad Benham Why do this? - Competitive Analysis Presently there are few JVMs implemented in hardware. Existing implementations rarely have published documented to the level necessary for advanced research. Java statistics are often difficult to obtain or sketchy in detail.

Conrad Benham Why do this? - Research Analysis Statistics will identify most common opcodes. Allows hardware developers to focus on optimising a specific sub-set of the opcodes. Findings will be published to help other research efforts. Presently there are few tools which collect data of this kind.

Conrad Benham So how does Java work? Java Source Code Created by Java Programmer Java Compiler Produces Java Byte Codes Platform Independent JVM Runs Java Byte Codes Go to Sun Microsystems’ Java web site at: FOR MORE INFO...

Conrad Benham What are we looking for? Static Data collected from the byte codes. does not change during execution time. will change at compile time. Dynamic Data collected at runtime. will change at runtime (depending on inputs to a program).

Conrad Benham Static Data Includes data found in Java class files e.g. the iadd instruction which adds two integer operands on the operand stack together and pushes the result back on the stack. Branching Instructions The offset of instructions resulting from the conditional statements (i.e. if, while, switch, try).

Conrad Benham Types of Branching Instruction Forward i.e. if, else, switch and try. Backward i.e. loops such as for and while

Conrad Benham Dynamic Data Includes runtime analysis e.g. average loop iterations, processor usage, memory usage. analysing feasibility of using registers, efficient heap allocation/de-allocation and garbage collection routines.

Conrad Benham Analysis Benchmarks There are a number of benchmark suites available: Including the Dhrystone and Whetstone benchmarks Benchmark code must be: representative of most Java applications, they must follow the typical programmers coding style able to test a JVM in terms of of how much system resources it uses (e.g processor usage and memory usage).

Conrad Benham Method of Collection Static Data Source Code Compilation Class File Disassembly File Parsing Dynamic Data Not finalised Memory usage patterns Execution times Other performance issues

Conrad Benham Demonstration

Conrad Benham Conclusion Relatively few organisations have collected data on Java, the emphasis is on code optimisation. The main aim of this project is to create and collect reusable components, data and statistics for other research. Comments and questions.