Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Full Speed Ahead! (Ahead-of-Time
Compilation for Java SE)
CON3738
David Buck
Principal Member of Technical Staff
Java Platform Group
October 4th, 2017
Confidential – Oracle Internal/Restricted/Highly Restricted 3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
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, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Confidential – Oracle Internal/Restricted/Highly Restricted 4

Recommended for you

20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM

2019-11-19 Oracle Modern Cloud Day 2019에서 발표한 GraalVM 문서입니다. GraalVM의 주요 특징을 소개하고 클라우드 환경에서 사용하는 옵션을 정리합니다.

graalvmjitaot
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee

This document discusses the introduction of HTTP/2 support in Java and Java EE. It provides background on the limitations of HTTP/1.1 and why HTTP/2 was created, outlining key HTTP/2 features like binary framing and multiplexing. The document then explains how HTTP/2 will be supported in Java EE 8 and Java SE, allowing Java applications to take advantage of performance improvements from HTTP/2.

javajavacro'15hujak
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck

The document discusses the Servlet 4.0 specification led by Ed Burns and Dr. Shing-Wai Chan. It provides an overview of the major new features of HTTP/2 including request/response multiplexing, binary framing, stream prioritization, server push, and header compression. It then outlines how features like server push could potentially be exposed through the Servlet API in Servlet 4.0. It concludes with an invitation for the community to contribute to the JSR-369 page by providing a list of JIRA components, use cases for sessionless applications, and references to async and thread safety in the specification and documentation.

javahttpservlet
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• JVM Sustaining Engineer
• OpenJDK 8 Update Project
Maintainer
• JavaOne Rock Star
• Co-author of Oracle WebLogic
Server 11g 構築・運用ガイド
• @DavidBuckJP
• https://blogs.oracle.com/buck/
Hi There!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Warnings
AoT Basics
Similar Functionality
Usage
1
2
3
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings

Recommended for you

Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation

originally presented at JavaOne 2010 this talk gives an overview of the Apache Harmony project, it's goals and achievements to date.

javaapache harmony
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015

Presentation from JavaOne 2015. This session, which covers use cases of JSR 356 (Java API for WebSocket) and some features of Oracle’s implementation related to enterprise applications, contains description of standard use cases and recommends optimizations and best practices for using the JSR 356 API. After that, it presents more-complex schemes involving authentication support, fallback support, and clustering.

tyruswebsocketjava
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service

The document discusses Oracle Cloud and its services, including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). It describes Oracle's cloud database, Java, developer, and application services which provide fully managed services to developers. It emphasizes that Oracle Cloud can support applications both in cloud or on-premise environments.

cloudoracle
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings
• AoT is still experimental and not yet officially supported
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings
• AoT is still experimental and not yet officially supported
• Currently only Linux on AMD64 (w/ libelf.so) is supported
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings
• AoT is still experimental and not yet officially supported
• Currently only Linux on AMD64 (w/ libelf.so) is supported
• No official documentation (only the JEP)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Warnings
• AoT is still experimental and not yet officially supported
• Currently only Linux on AMD64 (w/ libelf.so) is supported
• No official documentation (only the JEP)
• There is no official roadmap for support yet

Recommended for you

JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?

The document discusses recent developments and future plans for JavaServer Faces (JSF). Key points include: - JSF 2.2 introduced HTML5 friendly markup, flows for modularizing behavior, and resource library contracts for modularizing appearance. - Emerging trends like mobile-first design, JavaScript frameworks, and statelessness need to be considered for JSF. - JSF 2.3 planned updates include further CDI alignment, small new features like JSON ajax rendering, and ensuring compatibility with the new MVC specification.

JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić

The document introduces Oracle's Java Cloud Service. It provides a self-service application platform for running business applications in the cloud, allowing users to save time and costs through simplified provisioning. The Java Cloud Service offers three options: a SaaS extension for enriching Oracle SaaS apps; a virtual image with a hosted WebLogic instance controlled by Oracle; and a full-featured service. It is aimed at use cases like development/testing, new app development, and migrating or outsourcing apps to the cloud.

marin tadićjavacro'15hujak
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee

This document provides an overview of Project Avatar, which is Oracle's implementation of server-side JavaScript (Node.js) that runs on the Java Virtual Machine (JVM). It discusses how Avatar bridges Node.js and Java by allowing thousands of Node packages and Java libraries to be used together. It also describes Avatar's enterprise features like advanced multithreading, state sharing, persistence, and Java EE interoperability that allow building enterprise applications in JavaScript while leveraging existing Java infrastructure. The document concludes with a demo of Avatar's capabilities.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
AoT Basics
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why learn about Java AoT?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why learn about Java AoT?
• May be supported in the future
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why learn about Java AoT?
• May be supported in the future
• Excuse to study other HotSpot technologies

Recommended for you

GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams

GraphPipe is an open source protocol and collection of software designed to simplify machine learning model deployment and decouple it from framework-specific model implementations.

oraclemachine learninggraphpipe
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David DelabasseeJavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee

The document discusses plans for Java EE 8 based on feedback from the Java EE community. Key points include: - Java EE 8 will focus on HTML5/web tier enhancements, ease of development, and supporting cloud infrastructure, based on a community survey. - New features include JSON binding APIs to map Java objects to JSON, JSON processing enhancements, server-sent events, and HTTP/2 support. - The JSON binding and processing APIs aim to standardize JSON work in Java EE and draw from existing implementations.

java ee 8david delabasseejavacro'15
Supercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database PerformanceSupercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database Performance

The document appears to be a slide deck presentation about optimizing database performance. It discusses key database performance concepts like latency and throughput. It also covers important Oracle Database performance statistics and wait events that can provide insight into where a database is spending its time and potential areas for improvement. The presentation emphasizes the importance of commits for ensuring data is safely stored to disk through the redo log and buffer cache.

databaseperformanceoracle
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why learn about Java AoT?
• May be supported in the future
• Excuse to study other HotSpot technologies
• Fun
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model (Interpreter)
MyClass.java MyClass.class java
(HotSpot)
javac
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model (JIT)
MyClass.java MyClass.class java
(HotSpot)
javac
Machine
Language
(in memory)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)

Recommended for you

Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX

This document discusses a project that uses Java technologies to power a beer tap via Twitter. It involves a JavaFX application that tweets to turn on a relay connected to a beer tap. A REST service in Oracle Java Cloud Service is used to control the relay. The project demonstrates using Java ME, SE Embedded, and Java EE to connect devices to the cloud as part of an Internet of Things application.

cloudjavafxiot
JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary

This session will explore how Java development has been brought into the open over the past decade and where it is headed in the future. Several Java developer efforts have brought open source development processes and new levels of transparency and participation into their communities. This year theJava Community Process (JCP) program celebrates twenty years of Java standards development. Since the initiation of efforts to expand the developer participation in the Java community, Java standards development is more open that it ever has been. Learn how to take part in the Java developer community, upcoming changes to the Java platform, and how you can contribute. You can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers your questions about why and how to participate in the evolution of the Java platform - how you can participate in contributing to the future of Java.

jcpjavasoftware development
Introdução ao Oracle NoSQL
Introdução ao Oracle NoSQLIntrodução ao Oracle NoSQL
Introdução ao Oracle NoSQL

The document discusses the key features and capabilities of Oracle NoSQL database including its flexible key-value data model, ACID transactions, horizontal scalability, high availability, elastic configuration, and integration with other Oracle products. It provides examples of using Oracle NoSQL for CRUD operations and defining schemas using Apache Avro. Performance testing results are shown demonstrating predictable and scalable performance as the cluster is expanded.

nosqloracleoracle nosql
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
• Methods get compiled
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
• Methods get compiled
• Compilation is expensive (both in cpu time and memory)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
• Methods get compiled
• Compilation is expensive (both in cpu time and memory)
• ML version is fast
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
• Methods get compiled
• Compilation is expensive (both in cpu time and memory)
• ML version is fast
• Is JIT really faster than an interpreter?

Recommended for you

EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy

EJB and CDI Alignment and Strategy Linda DeMichiel, Java EE Specification Lead at Oracle, gave a presentation on EJB and CDI alignment and strategy at Java Day Tokyo 2015. The presentation covered: (1) the history and evolution of EJB and CDI, (2) the advantages and disadvantages of when to use EJB vs CDI, (3) how Java EE has aligned managed beans, and (4) Oracle's strategy for the future alignment of EJB and CDI.

cdi2javaeejavaee7
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado

This document discusses WebSockets and the Java API for WebSockets. It provides an overview of the WebSocket protocol and browser support. It then describes the Java API specification JSR-356 and how to create WebSocket endpoints and handle events like messages using annotations or a programmatic API. It also covers security, the reference implementation Tyrus, and how WebLogic Server 12.1.3 supports Java EE 7 WebSockets including fallback options for environments without native WebSocket support.

javaee7websocketsweblogic
Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview

This document discusses GraalVM and Java performance optimizations. It begins with an introduction to GraalVM and its benefits, such as running multiple languages on the JVM. It then covers key differences between ahead-of-time and just-in-time compilers, and how the JIT compiler in HotSpot uses profiling and dynamic compilation to optimize bytecode execution. The document also discusses how techniques like inlining help improve Java performance over time.

oracleoracle developer meetupgraalvm
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
Better performance than an interpreter?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
Better performance than an interpreter?
Depends on your definition of “performance”

Recommended for you

Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation

The document discusses ahead-of-time (AOT) compilation in Java, which generates native machine code from Java bytecode ahead of runtime. AOT compilation was introduced in Java 9 as experimental and allows precompiling Java classes into shared library files that can be loaded by multiple JVMs. Benefits of AOT include faster startup times and improved performance by avoiding interpretation and just-in-time compilation overhead, though it currently has limitations such as only supporting Linux x64 and requiring the same system configuration.

aotjavacompiler
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2

MySQL Troubleshooting in Hong Kong Open Source Conference 2019 - how to use sys.diagnostics(...) and using the dimitri (http://dimitrik.free.fr/) Tools for performance analysis.

dimitrimysqltroubleshooting
APAC Tour 2019 update
APAC Tour 2019 updateAPAC Tour 2019 update
APAC Tour 2019 update

The document discusses the history and future of Java. It notes that Java was originally developed by Sun Microsystems in 1995 and later open-sourced. It is now stewarded by Oracle, who aims to evolve Java through an open process. Key topics covered include Java's large developer community, the Java Community Process for developing specifications, and ongoing work to improve and modernize the Java platform through projects like OpenJDK.

javacommunityjcp
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ time ./hello_j1
Hello JavaOne!
real 0m0.002s
user 0m0.001s
$ time java HelloJ1
Hello JavaOne!
real 0m0.104s
user 0m0.077s
sys 0m0.020s
Just in Time Compilation (JIT)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
Weak Point
• Compilation overhead is high
– Delay before native code can be executed
– Heavy resource (memory / CPU cycles) consumption
• Interpretation is better for non-hot methods
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT)
(HotSpot’s Implimentation)
• All methods start off being interpreted
• Hot methods identified by sample-based profiling
• Hot methods are compiled
• Non-hot methods continue to be interpreted
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Even with HotSpot’s JIT
• Application startup time is longer
• It takes longer to achieve peak performance
• Compilation consumes a lot of memory
• There are platforms where runtime code generation is not allowed
Compared to native (C/C++) compilation

Recommended for you

Bringing Java into the Open
Bringing Java into the Open Bringing Java into the Open
Bringing Java into the Open

Talk on Java Community Process updates and progress towards more openness and transparency. Also includes information on Platform updates and how to participate in activities. This talk is from various events in EMEA in the Fall of 2018.

javajcpcommunity
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems

A presentation of a Kafka, Spark, Redis based streaming Solution shown in Oracle Code 2017 Bangalore event

Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready

Presented by Vaibhav Choudhary, Java Platforms Team, Oracle in Walmart languages meetup on 28th April in BLR. Java with all its recent changes are ready for Cloud and for Container. Let’s unfold the story: Performance Improvement Fast startup time Low memory overhead Respective to container boundaries, if any

javacontainerizationcontainers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Just in Time Compilation (JIT) HotSpot’s Implementation
A tale of two compilers…
• C2
– For server use
– Heavy optimization
– Dependent on profiling data collected by the interpreter
– Default CompileThreshold: 10000
• C1
– For client use
– Less optimization
– Not dependent on profiling data
– Default CompileThreshold : 1500
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Ahead of Time (AoT) Strategy
• Generate machine code before runtime
• Load preexisting machine code during runtime
• No need to JIT compile code at runtime
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model (AoT)
MyClass.java MyClass.class java
(HotSpot)
javac
Machine
Language
(in memory)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model (AoT)
MyClass.java MyClass.class java
(HotSpot)
javac
my_class.so
jaotc

Recommended for you

The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You

The document discusses the future of Java and opportunities for developers. It outlines Oracle's commitment to open governance of Java through the Java Community Process. Recent and upcoming versions of Java like Java EE 8 and Java SE 9 introduce new features and capabilities while maintaining backwards compatibility. The future of Java development involves open collaboration through projects like OpenJDK to drive continued innovation.

jcpcommunityjava
JUG Tour November 2017
JUG Tour November 2017JUG Tour November 2017
JUG Tour November 2017

This document discusses the Java Community Process (JCP) and the future of Java. It provides an overview of the JCP, including that it is an open, transparent process for evolving Java technology and that JCP members collaborate to develop Java specifications through Java Specification Requests (JSRs). It notes some of the benefits of JCP participation for developers and communities.

javajcpjavase
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You

Learn how to take part in the Java developer community and the upcoming changes to Java - you can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers questions about why and how to participate in the evolution of the Java platform.

javacommunityjcp
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model
java
(HotSpot)
Machine
Language
(in memory)
java
(HotSpot)
Machine
Language
(in memory)
java
(HotSpot)
Machine
Language
(in memory)
java
(HotSpot)
Machine
Language
(in memory)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java Build / Execution Model
java
(HotSpot)
java
(HotSpot)
java
(HotSpot)
java
(HotSpot)
my_class.so
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★

Recommended for you

Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1

Part 1 of 2 of the "Java and Serverless" session held at the Stockholm Java User Group Meetup in Stockholm, August 22nd, 2018. Part 1 was held by Matthew Gillard, Java and Clojure Programmer at Oracle. Description: Java is extremely popular for most kind of server-side development. Its stability, reliability and the wide array of good tooling has made sure of this for many years. Java has been able to stride through the explosive growth of virtualization and cloud deployments, but a new application/deployment model has arrived and although it seems to be popular, the beautiful fire of Java has not caught light there. Here we are talking about so-called "Serverless" platforms.

javaserverlessorcale
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin

The document discusses serverless computing and Kotlin functions. It introduces Fn Project, an open source container-native platform for serverless/function-as-a-service (FaaS) computing. Fn Project supports multiple languages like Go, Java, Python, and Kotlin and can run on Kubernetes as well as cloud providers and on-premises. The document demonstrates how to write Kotlin functions that can be deployed to Fn Project and Exoscale, a European cloud provider that supports Fn Project.

serverlessfaaskotlin
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs

This document discusses the challenges and opportunities of serverless Java. It notes that while Java is one of the most popular languages, its usage in serverless computing has been limited. However, the Fn Project provides an open-source platform that allows for developing serverless Java applications using established Java tooling while achieving low latency and high performance through techniques like container-optimized JVMs and GraalVM compilation. Overall, serverless Java is viable through these "blueprints" and has a promising future as the ecosystem continues to evolve.

serverlessfaasjava
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★
• Less time to peak performance / steady state ★
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★
• Less time to peak performance / steady state ★
• Less runtime compilation overhead (CPU / memory) ★
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★
• Less time to peak performance / steady state ★
• Less runtime compilation overhead (CPU / memory) ★
• Native code can be shared across multiple processes ★
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★
• Less time to peak performance / steady state ★
• Less runtime compilation overhead (CPU / memory) ★
• Native code can be shared across multiple processes ★
• Native code performance even on platforms that disallow JIT ★

Recommended for you

Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018

This presentation is part of Container Conference 2018 presented by Vaibhav Choudhary, Principal Staff Engineer, Oracle: www.containerconf.in -- Container become the fundamental building block unit of modern application and for cloud. So, lets learn in this session that how you can containerize (dockerize in the demo) a java image. What are the effort we put to make Java, Container aware. How Java started understanding Container and start respecting the container boundary. We will also learn how you can leverage java features like AppCDS, AOT inside the container and make it faster than even. --

javacontainersbangalore container conference
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud

While application architectures are evolving to become stateless, application state and state management are naturally emerging as a service in themselves. This session outlines the development, operation, and maintenance of an application state service for the cloud with Java 9, using a serverless strategy. The presentation investigates some of the challenges of designing an infinite-capacity, infinite-processing platform capable of reliably running everything from the smallest application to a globally distributed enterprise-class infrastructure for the mobile and IoT domains.

javaserverlesscloud
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!

The document discusses new features and enhancements in MySQL Enterprise Backup including optimistic backup, improved redo log copying, and encryption support. Optimistic backup optimizes the backup process by identifying tables that are infrequently updated and backing those up first before tables that are more active. This results in faster backups that are smaller in size and have less overhead. Encryption support allows backups to be securely encrypted prior to being written to storage. Improved redo log copying fixes issues where the redo log could be overwritten before it was fully processed during a backup. Examples of how to perform full and incremental optimistic backups and restores are also provided.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Advantages of Ahead of Time (AoT)
• Faster startup times ★
• Less time to peak performance / steady state ★
• Less runtime compilation overhead (CPU / memory) ★
• Native code can be shared across multiple processes ★
• Native code performance even on platforms that disallow JIT ★
★ YMMV
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Similar Functionality
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Similar Functionality
• Tiered Compilation
• Class Data Sharing(CDS) / AppCDS

Recommended for you

Java, the JCP & YOU
Java, the JCP & YOU Java, the JCP & YOU
Java, the JCP & YOU

This document discusses the Java Community Process (JCP) and how developers can get involved. It provides an overview of the JCP, including how Java specifications are developed through Java Specification Requests (JSRs). It encourages developers to join the JCP as members in order to help shape Java standards and advance their careers. It also outlines upcoming changes to broaden JCP membership and participation.

javajcpcommunity
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]

presentation video: https://www.youtube.com/watch?v=buUkXFx9ao8 Ever wonder how the JVM “knows” how to stop at the breakpoint you set? Curious about how the various debug flags affect your application? This session examines the HotSpot’s support for debugging Java code (JVMTI and related APIs) and takes a deep dive into the implementations of some of the more interesting features used by debuggers, profilers, and other tools.

javaopen sourcejvm
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology

The document discusses the importance of GitHub for software careers. It begins with an introduction to GitHub, describing how it popularized open source software by allowing developers to host projects and collaborate on code. The rest of the document covers version control with Git and additional features of GitHub like Gists, issues, and student resources that can benefit careers. It emphasizes that having an active public profile on GitHub can increase your value as a developer.

ossfsfgit
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Tiered Compilation
• Server JVM without Tiered Compilation
– Interpreter (w/ profiling)
– C2
• Server JVM with Tiered Compilation
– Interpreter (w/ profiling)
– C1 (w/ profiling)
– C2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
No Class Data Sharing
java
(HotSpot)
Class Data
(in memory)java
(HotSpot)
Class Data
(in memory)
java
(HotSpot)
Class Data
(in memory)
java
(HotSpot)
Class Data
(in memory)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Class Data Sharing
java
(HotSpot)
java
(HotSpot)
java
(HotSpot)
java
(HotSpot)
Class Data
classes.jsa
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• Class Data Sharing
– Only Java SE Class Library
• AppCDS
– Includes application classes as well

Recommended for you

Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center

This presentation offers a solution for an enterprise company to modernize their IT operation in this cloud era.

clouddockerdocker swarm
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]

JDK 13 の新機能について話します。以下、5つのテーマをカバーします。 350: Dynamic CDS Archives 351: ZGC: Uncommit Unused Memory 353: Reimplement the Legacy Socket API 354: Switch Expressions (Preview) 355: Text Blocks (Preview) Previewの意味についても解説します。

javaopenjdkopen source
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...

JDK Mission Controlの最近のオープンソース化により、Java Mission ControlとJava Flight Recorderに対する関心がこれまで以上に高まっています。 多くの変更が加えられましたが、これらのツールは、開発中および実稼働中の両方で、Javaの問題のデバッグとトラブルシューティングの最前線に残っています。 このセッションでは、これらの最近の変更、以前のバージョンからの移行、およびJDK Mission Controlコミュニティの将来の計画について説明します。

javaopenjdkjmc
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Same as AoT
• Tiered Compilation
– Quicker warm up
• Class Data Sharing(CDS) / AppCDS
– Quicker warm up
– Lower total memory footprint
Different from AoT
• No machine (native) code is
persisted or shared
Similar Functionality
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Corporate Photography Collection
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Usage
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
A New Tool: jaotc
MyClass.class my_class.sojaotc

Recommended for you

Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]

Java bytecode lies at the foundation of the the entire Java ecosystem. Regardless of what language and tools you use, if you run on the JVM, you’re using Java bytecode. Although understanding bytecode is not a requirement for all developers, a deeper understanding of how your code runs on the JVM can make understanding and resolving certain types of issues much easier. Understanding bytecode also opens the door to more-advanced techniques such as bytecode instrumentation via JVMTI and writing your own Java agent. This session starts at the very beginning and covers all the basics, with a heavy emphasis on examples.

javajvmopen source
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...

The document outlines a general product direction from Oracle that is intended for informational purposes only and should not be relied upon for purchasing decisions. Any features or functionality described are subject to change at Oracle's sole discretion. Statements in the presentation relating to Oracle's future plans are forward-looking statements subject to risks and uncertainties detailed in Oracle's SEC filings. All information is current as of September 2019 and Oracle undertakes no duty to update any statements. The document is protected by copyright law.

javajvmopen source
invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]

The invokedynamic instruction (part of JSR 292) has been around since JDK7. Despite its importance to most languages that run on the JVM, many developers still do not understand how it is used or implemented. Most resources available about JSR 292 are aimed at language implementers who are experts in compiler theory and language design. This session is different, offering an overview of JSR 292 for people who are curious about how things work but do not necessarily spend all day working on java bytecode. This update of the speaker’s 2015 session on the same topic has been updated to include new uses and related changes since Java 8.

javajvmopen source
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --output libHelloAOT.so HelloAoT.class
jaotc
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --help
Usage: jaotc <options> list
list A : separated list of class names, modules, jar files
or directories which contain class files.
where options include:
--output <file> Output file name
--class-name <class names> List of classes to compile
--jar <jarfiles> List of jar files to compile
--module <modules> List of modules to compile
--directory <dirs> List of directories where to search for files to compile
--search-path <dirs> List of directories where to search for specified files
--compile-commands <file> Name of file with compile commands
--compile-for-tiered Generate profiling code for tiered compilation
--compile-with-assertions Compile with java assertions
--compile-threads <number> Number of compilation threads to be used
--ignore-errors Ignores all exceptions thrown during class loading
--exit-on-error Exit on compilation errors
--info Print information during compilation
--verbose Print verbose information
--debug Print debug information
--help Print this usage message
--version Version information
-J<flag> Pass <flag> directly to the runtime system
jaotc (On-line Help)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --info --output libHelloAOT.so HelloAoT.class
Compiling libHelloAOT...
1 classes found (30 ms)
2 methods total, 2 methods to compile (4 ms)
Compiling with 8 threads
.
2 methods compiled, 0 methods failed (409 ms)
Parsing compiled code (1 ms)
Processing metadata (15 ms)
Preparing stubs binary (1 ms)
Preparing compiled binary (1 ms)
Creating binary: libHelloAOT.o (8 ms)
Creating shared library: libHelloAOT.so (13 ms)
Total time: 912 ms
jaotc (--info Flag)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --info --compile-with-assertions --output libHelloAOT.so HelloAoT.class
jaotc (--compile-with-assertions Flag)

Recommended for you

Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...

Why aren’t your threads behaving? Although most developers are confident about handling better-known issues such as deadlocks and simple hangs, many people still come across liveness issues that are not always easy to identify and resolve. From complete hangs that bring your application to a halt, to scalability issues, there are all sorts of things that go bump in the night. This session explores the most common types of things that can prevent your Java threads from getting work done and shows how to address them.

javajvmopen source
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]

With the recent open-sourcing of JDK Mission Control, there is even more interest in Java Mission Control and Java Flight Recorder than ever. A lot has changed, but these tools still remain on the forefront of debugging and troubleshooting Java issues, both during development and in production. This session covers these recent changes, migrating from earlier versions, and what the JDK Mission Control community’s plans are for the future.

javajvmopen source
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]

The document outlines a product direction intended for information purposes only and is not binding. Any features or functionality described may change or be removed at Oracle's sole discretion. Statements relating to Oracle's plans are forward-looking and subject to risks. All information is current as of September 2019. Oracle undertakes no duty to update any statement in light of new information or future events. The document is intended to provide a non-binding overview of Oracle's general product direction and is not a commitment to deliver any functionality.

javajvmopen source
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --compile-commands cc.txt --output libHelloAOT.so HelloAoT.class
$ cat cc.txt
exclude org.sample.code.MyClass.method*
exclude org.sample.code.MyClass.<init>
jaotc (--compile-commands Flag)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --output libjava.base.so --module java.base
jaotc (Modules)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc --output libjava.base.so --jar my-spiffy-app.jar
jaotc (Jar Files)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc -J-XX:-UseCompressedOop --output libHelloAOT.so HelloAoT.class
VM Options are important here! (more to come…)
jaotc (VM Options)

Recommended for you

Z Garbage Collector
Z Garbage CollectorZ Garbage Collector
Z Garbage Collector

The document discusses the Z Garbage Collector (ZGC) introduced in JDK 11. ZGC provides scalable low-latency garbage collection for heap sizes in the terabytes by using concurrent, tracing GC techniques. It aims to reduce GC pause times to less than 10ms even for very large heaps, with low overhead of around 15%. The document covers how ZGC works, its implementation details like colored pointers and load barriers, and its performance compared to Parallel GC and G1 GC based on SPECjbb2015 benchmarks.

open sourcejavaopenjdk
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019

Update on Project Valhalla delivered during the Japan Java User's Group Cross Community Conference Spring 2019 Keynote. After a very brief review of Project Valhalla and its goals, we cover nest-based access control (JEP 181, new in JDK 11) and an overview of the currently available value type prototypes (MVT and LW1).

open sourcejavaopenjdk
Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018

Java 9 から Variable Handles が導入されました。利用価値の高い機能ではありますが、多くの方々が活用を始めるには至っていないと思われます。Variable Handleは何のためにあるのか、そしてどう使用したらいいのかを解説します。

javaopen sourceopenjdk
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
jaotc (--compile-for-tiered Flag)
• jaotc uses Graal to compile
• Performance is similar to C1
• --compile-for-tiered generates code that includes profiling instrumentation
needed by C2
Confidential – Oracle Internal/Restricted/Highly Restricted 65
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ java -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Runtime
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ java -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Hello AoT!
$
Runtime
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ java -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Runtime (-XX:+/-PrintAOT)

Recommended for you

JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ

3月20日にリリース予定のJDK10では12のJEPが提案され、実装/実現される見通しです。今回注目の新機能はJEP286: Local-Variable Type Inference- ローカル変数の型省略(var記法)です。このセッションではこのJEPの解説を中心に、その他主なJEPの紹介を行います。

javajdkopen source
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]

Java SE 8の主要な機能としてLambda式、Date & Time APIなどが取り上げられることが多いですが、Java SE 8ではJavaVMに対しても様々な改良が施されています。本セッションでは、HotSpot VMにおける改良点などを分かりやすく紹介します。

javaopen sourcejvm
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]

Java 言語レベルでのロックの振る舞いや使い方を説明する本や記事などの資料はいろいろありますが、JVM 側の内部実装についての説明は殆どありません。 このセッションで、HotSpot のロックの実装を覗いてみます。 HotSpot 側のロックの各種(thin、inflated、biased など)の実装とパフォーマンスの特徴を勉強しましょう。そして、プロファイリングツールを使って自分のシステムのロック利用を監視する例と JVM の設定も軽くカバーします。

javaopen sourcejvm
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ builds/jdk-9/bin/java -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT
13 1 loaded ./libHelloAoT.so aot library
76 1 aot[ 1] HelloAoT.<init>()V
76 2 aot[ 1] HelloAoT.main([Ljava/lang/String;)V
Hello AoT!
$
Runtime (-XX:+/-PrintAOT)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ java -XX:-UseCompressedOops -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Runtime (Compressed Oops Disabled)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ java -XX:-UseCompressedOops -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Shared file ./libHelloAoT.so error: UseCompressedOops has different value 'true' from
current 'false'
7 1 skipped ./libHelloAoT.so aot library
Hello AoT!
$
Runtime (Compressed Oops Disabled)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ builds/jdk-9/bin/java -XX:-UseCompressedOops -XX:AOTLibrary=./libHelloAoT.so HelloAoT
Hello AoT!
$
Runtime (Compressed Oops Disabled)

Recommended for you

Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]

A follow-up to my JavaOne 2015 “HotSpot Synchronization, a Peek Under the Hood” session, this year’s session continues the investigation of concurrent programming in Java, with a strong emphasis on the implementation side. You will see how the JVM supports both the Java concurrency API and the Java memory model. For example, the presentation looks at how Java language-level constructs such as the volatile keyword change the way the JVM accesses memory across a variety of CPUs. After this session, you should have a more intuitive sense of why the Java memory model imposes the restrictions that it does.

javaopen sourcejvm
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]

Often the true mark of a successful technology is when something works so well that those who benefit the most from it are not even aware of its existence. Java’s bytecode verification undoubtedly falls into this category, but it is as vital as ever to keeping Java secure and safe. This session takes a deep dive into the safeguards that bytecode verification provides for us and shows how it continues to protect us from not only malicious code but also our own mistakes.

javaopen sourcejvm
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]

Java SE 8の主要な機能として、Lambda(クロージャ)とデフォルト・メソッド(従来ディフェンダー・メソッドもしくはエクステンション・メソッドと呼ばれていた)があります。クロージャを言語に追加することによってアプリケーションやライブラリに新たな表現の機会が与えられましたが、実際にはどのように実装すべきなのでしょうか。Lambdaはインナー・クラスによってシンプルでかつ文法的にコンパクトになるということは広く理解されていると思います。しかし、現実にはLambdaによる記述は、Invokedynamicを使った実装によって従来のJavaとは異なったものになっています。本セッションでLambdaについて、さらに深く理解してください。

javaopen sourcejvm
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
$ jaotc -J-XX:-UseCompressedOop --output libHelloAOT.so HelloAoT.class
jaotc (Be sure to synchronize VM options)
Compressed OOPs Normal OOPs
G1 -J-XX:+UseCompressedOops
-J-XX:+UseG1GC
-J-XX:-UseCompressedOops
-J-XX:+UseG1GC
ParallelGC -J-XX:+UseCompressedOops
-J-XX:+UseParallelGC
-J-XX:-UseCompressedOops
-J-XX:+UseParallelGC
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is < 4GB, 32 MSB of every heap address is the same!
• We can store just the 32 LSB of each address
• Each reference field is half the size
Confidential – Oracle Internal/Restricted/Highly Restricted 74
Compressed Oops
64-bit Address
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is < 4GB, 32 MSB of every heap address is the same!
• We can store just the 32 LSB of each address
• Each reference field is half the size
Confidential – Oracle Internal/Restricted/Highly Restricted 75
Compressed Oops
32 MSB 32 LSB
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is < 4GB, 32 MSB of every heap address is the same!
• We can store just the 32 LSB of each address
• Each reference field is half the size
Confidential – Oracle Internal/Restricted/Highly Restricted 76
Compressed Oops
Always the same! 32 LSB

Recommended for you

Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]

去年のJJUGナイトセミナー JVM特集で実施した「HotSpot のロック: A Peek Under the Hood」の続きのセッションです。 java.util.concurrentやJava Memory Modelの実装について、いくつかご紹介します。これらで不可欠な技術がJVMとクラス・ライブラリでどのように提供されているかを簡単に説明します。たとえば、volatileキーワードの利用時に、JITコンパイルによって生成されるコードはどのように変わるかを分析します。

javaopen sourcejvm
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]

Ahead-of-Time Compilation (AOT) というのは、 Javaアプリケーションを実行する前に、Java Bytecodeをマシン語にコンパイルしておくことです。つまり、Just-In-Time (JIT)コンパイル処理を実行時ではなく、実行する前にやっておくことが出来るようになります。実行時にこのJIT処理を避けることで、アプリケーションがより早く立ち上がるケースがあります。まだ実験的ですが、JDK 9でAOTを利用することが出来る場合があります。このセッションでは、デモや例を実施しながら、JDK 9のAOT機能の使い方や注意点などを簡単に紹介します。

javaopen sourcejvm
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]

presentation video: https://www.youtube.com/watch?v=gIffIZnmYBM The invokedynamic instruction (part of JSR-292) has been around since JDK 7. Since it's introduction 4 years ago, we have seen it's adoption by many of the JVM's most popular languages, including Java itself! Despite its importance to most languages that run on the JVM, many developers still do not understand how it is used or implemented. Most resources available about JSR-292 are aimed at language implementers who are experts in compiler theory and language design. This session will be different, and will offer an overview of JSR-292 for people who are curious about how things work, but do not necessarily spend all day working on java bytecode.

javaopen sourcejvm
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is < 4GB, 32 MSB of every heap address is the same!
• We can store just the 32 LSB of each address
• Each reference field is half the size
Confidential – Oracle Internal/Restricted/Highly Restricted 77
Compressed Oops
32 LSB
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is < 4GB, 32 MSB of every heap address is the same!
• We can store just the 32 LSB of each address
• Each reference field is half the size
• uncompressed_oop = heap_base + compressed_oop
Confidential – Oracle Internal/Restricted/Highly Restricted 78
Compressed Oops
32 LSB
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is > than 4GB but < 32GB we can still compress the Oop
• 64-bit platform has an 8-byte alignment requirement
• 3 LSB of every heap address are always zero
• So we can shift the address 3 bits right/left to compress/uncompress
Confidential – Oracle Internal/Restricted/Highly Restricted 79
Compressed Oops
64-bit Address
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is > than 4GB but < 32GB we can still compress the Oop
• 64-bit platform has an 8-byte alignment requirement
• 3 LSB of every heap address are always zero
• So we can shift the address 3 bits right/left to compress/uncompress
Confidential – Oracle Internal/Restricted/Highly Restricted 80
Compressed Oops
64-bit Address 000

Recommended for you

What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free

Discover the fascinating world of Optical Character Recognition (OCR) technology with our comprehensive presentation. Learn how OCR converts various types of documents, such as scanned paper documents, PDFs, or images captured by a digital camera, into editable and searchable data. Dive into the history, modern applications, and future trends of OCR technology. Get step-by-step instructions on how to extract text from any image online for free using a simple tool, along with best practices for OCR image preparation. Ideal for professionals, students, and tech enthusiasts looking to harness the power of OCR.

optical character recognitionocrimage to text conversion
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series

The three duality theorems of fold.

duality theorems of foldduality theoremsfold
AI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdfAI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdf

Discover how generative AI is transforming IT development in this blog. Learn how using AI software development, artificial intelligence tools, and generative AI tools can lead to smarter, faster, and more efficient software creation. Explore real-world applications and see how these technologies are driving innovation and cutting costs in IT development.

chatbot development companyai chatbot development companychatbot development services
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is > than 4GB but < 32GB we can still compress the Oop
• 64-bit platform has an 8-byte alignment requirement
• 3 LSB of every heap address are always zero
• So we can shift the address 3 bits right/left to compress/uncompress
Confidential – Oracle Internal/Restricted/Highly Restricted 81
Compressed Oops
32-bit 000
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is > than 4GB but < 32GB we can still compress the Oop
• 64-bit platform has an 8-byte alignment requirement
• 3 LSB of every heap address are always zero
• So we can shift the address 3 bits right/left to compress/uncompress
Confidential – Oracle Internal/Restricted/Highly Restricted 82
Compressed Oops
32-bit
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• If heap is > than 4GB but < 32GB we can still compress the Oop
• 64-bit platform has an 8-byte alignment requirement
• 3 LSB of every heap address are always zero
• So we can shift the address 3 bits right/left to compress/uncompress
• uncompressed_oop = heap_base + (compressed_oop << 3)
Confidential – Oracle Internal/Restricted/Highly Restricted 83
Compressed Oops
32-bit
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 84
Write Barriers

Recommended for you

ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation

ENISA Threat Landscape 2023

Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024

Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024

Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile OfferPanvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer

Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer

 
by $A19
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 85
Write Barriers
Young Not Young
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 86
Write Barriers
Young Not Young! New
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 87
Write Barriers
Young Not Young! New !
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 88
Write Barriers
Young Not Young
Card Table

Recommended for you

Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai AvailableDombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available

Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available

₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You

₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You

Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile ServiceMumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service

Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 89
Write Barriers
Young Not Young! New
Card Table
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why do we need to synchronize VM Options?
• To avoid marking the entire heap, we need to keep track of changes
Confidential – Oracle Internal/Restricted/Highly Restricted 90
Write Barriers
Young Not Young! New !
Card Table
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Known Library Locations ($JAVA_HOME/lib/)
• -XX:-UseCompressedOops -XX:+UseG1GC : libjava.base.so
• -XX:+UseCompressedOops -XX:+UseG1GC : libjava.base-coop.so
• -XX:-UseCompressedOops -XX:+UseParallelGC : libjava.base-nong1.so
• -XX:+UseCompressedOops -XX:+UseParallelGC : libjava.base-coop-nong1.so
Confidential – Oracle Internal/Restricted/Highly Restricted 91
VMOptions must match library name
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Known Library Locations ($JAVA_HOME/lib/)
• jdk.compiler
• jdk.scripting.nashorn
• jdk.vm.ci
• jdk.vm.compiler
Confidential – Oracle Internal/Restricted/Highly Restricted 92
Other known JDK modules

Recommended for you

Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1

Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1 For Ad post Contact : adityaroy0215@gmail.com

@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...
 @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava... @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava...
@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...

For Ad Post Contact :- adityaroy0215@gmail.com

Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...

IN Dubai [WHATSAPP:Only (+971588192166**)] Abortion Pills For Sale In Dubai** UAE** Mifepristone and Misoprostol Tablets Available In Dubai** UAE CONTACT DR. SINDY Whatsapp +971588192166* We Have Abortion Pills / Cytotec Tablets /Mifegest Kit Available in Dubai** Sharjah** Abudhabi** Ajman** Alain** Fujairah** Ras Al Khaimah** Umm Al Quwain** UAE** Buy cytotec in Dubai +971588192166* '''Abortion Pills near me DUBAI | ABU DHABI|UAE. Price of Misoprostol** Cytotec” +971588192166* ' Dr.SINDY ''BUY ABORTION PILLS MIFEGEST KIT** MISOPROSTOL** CYTOTEC PILLS IN DUBAI** ABU DHABI**UAE'' Contact me now via What's App… abortion pills in dubai Mtp-Kit Prices abortion pills available in dubai/abortion pills for sale in dubai/abortion pills in uae/cytotec dubai/abortion pills in abu dhabi/abortion pills available in abu dhabi/abortion tablets in uae … abortion Pills Cytotec also available Oman Qatar Doha Saudi Arabia Bahrain Above all** Cytotec Abortion Pills are Available In Dubai / UAE** you will be very happy to do abortion in Dubai we are providing cytotec 200mg abortion pills in Dubai** UAE. Medication abortion offers an alternative to Surgical Abortion for women in the early weeks of pregnancy. We only offer abortion pills from 1 week-6 Months. We then advise you to use surgery if it's beyond 6 months. Our Abu Dhabi** Ajman** Al Ain** Dubai** Fujairah** Ras Al Khaimah (RAK)** Sharjah** Umm Al Quwain (UAQ) United Arab Emirates Abortion Clinic provides the safest and most advanced techniques for providing non-surgical** medical and surgical abortion methods for early through late second trimester** including the Abortion By Pill Procedure (RU 486** Mifeprex** Mifepristone** early options French Abortion Pill)** Tamoxifen** Methotrexate and Cytotec (Misoprostol). The Abu Dhabi** United Arab Emirates Abortion Clinic performs Same Day Abortion Procedure using medications that are taken on the first day of the office visit and will cause the abortion to occur generally within 4 to 6 hours (as early as 30 minutes) for patients who are 3 to 12 weeks pregnant. When Mifepristone and Misoprostol are used** 50% of patients complete in 4 to 6 hours; 75% to 80% in 12 hours; and 90% in 24 hours. We use a regimen that allows for completion without the need for surgery 99% of the time. All advanced second trimester and late term pregnancies at our Tampa clinic (17 to 24 weeks or greater) can be completed within 24 hours or less 99% of the time without the need for surgery. The procedure is completed with minimal to no complications. Our Women's Health Center located in Abu Dhabi** United Arab Emirates** uses the latest medications for medical abortions (RU-486** Mifeprex** Mifegyne** Mifepristone** early options French abortion pill)** Methotrexate and Cytotec (Misoprostol). The safety standards of our Abu Dhabi** United Arab Emirates Abortion Doctors remain unparalleled. They consistently maintain the lowest complication rates throughout the nation. Our

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Summary
• Value
– System reaches peak performance quicker ★
– Reduced total footprint of multiple JVMs running same code ★
– Native code performance on platforms that do not allow JIT ★
• Risks
– Still experimental, not officially supported
– No official documentation (besides the JEP)
– Only available on AMD64 Linux
– Does not support invokedynamic (JSR 292) or custom classloaders
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Summary
• Value
– System reaches peak performance quicker ★
– Reduced total footprint of multiple JVMs running same code ★
– Native code performance on platforms that do not allow JIT ★
• Risks
– Still experimental, not officially supported
– No official documentation (besides the JEP)
– Only available on AMD64 Linux
– Does not support invokedynamic (JSR 292) or custom classloaders
★ YMMV
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Other AoT Sessions at J1
• HotSpot AOT Internals and AOT + CDS Performance Results [CON7772]
– Thursday, Oct 05, 11:00 a.m. - 11:45 a.m. | Marriott Marquis (Yerba Buena Level) -
Salon 12
– JVMLS version of talk: https://www.youtube.com/watch?v=n5DCg6M2MDM
• JIT Versus AOT: Unity and Conflict of Dynamic and Static Compilers for Java
[CON3230]
– Thursday, Oct 05, 1:00 p.m. - 1:45 p.m. | Marriott Marquis (Yerba Buena Level) - Salon
14
Confidential – Oracle Internal/Restricted/Highly Restricted 95
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
References
• JEP 295: Ahead-of-Time Compilation
http://openjdk.java.net/jeps/295
• Tiered Compilation
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/performance-enhancements-7.html#tieredcompilation
• Class Data Sharing
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html
• JEP draft: Application Class Data Sharing
http://openjdk.java.net/jeps/8185996
• Ahead Of Time (AOT) Internals with Vladimir Kozlov and Igor Veresov
https://www.youtube.com/watch?v=n5DCg6M2MDM
Confidential – Oracle Internal/Restricted/Highly Restricted 96

Recommended for you

Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website

Lots of bloggers are using Google AdSense now. It’s getting really popular. With AdSense, bloggers can make money by showing ads on their websites. Read this important article written by the experienced designers of the best website designing company in Delhi –

website designing company in d
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours

Explore the rapid development journey of TryBoxLang, completed in just 48 hours. This session delves into the innovative process behind creating TryBoxLang, a platform designed to showcase the capabilities of BoxLang by Ortus Solutions. Discover the challenges, strategies, and outcomes of this accelerated development effort, highlighting how TryBoxLang provides a practical introduction to BoxLang's features and benefits.

coldfusioncfmladobe
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...

Presentation to Wing wing community. Porting "Blue Zone" application featured in the "Hexagonal Architecture Explained" book.

cloudinfrastructure from codewinglang
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Stay connected
• Join us: DevOps Corner (Developer Lounge – Moscone West)
• Learn more: openjdk.java.net | wercker.com/java
• Follow: @OpenJDK, @wercker #JavaOne #DevOps
97
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The preceding 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, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Confidential – Oracle Internal/Restricted/Highly Restricted 98
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]

Recommended for you

ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf

Ansys Mechanical enables you to solve complex structural engineering problems and make better, faster design decisions. With the finite element analysis (FEA) solvers available in the suite, you can customize and automate solutions for your structural mechanics problems and parameterize them to analyze multiple design scenarios. Ansys Mechanical is a dynamic tool that has a complete range of analysis tools.

mechanical engineeringsoftware3d software
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf

Explore the craft of program and project management, hearing from Atlassian Program Managers, local thought leaders, and more.

project managementpmoatlassian community
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
 @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ... @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...

For Ad Post Contact :- adityaroy0215@gmail.com

More Related Content

What's hot

Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database
gvenzl
 
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
Edward Burns
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Edward Burns
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
Tim Ellison
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
Pavel Bucek
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
Bruno Borges
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
JAXLondon2014
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
Oracle Developers
 
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David DelabasseeJavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Supercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database PerformanceSupercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database Performance
gvenzl
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Bruno Borges
 
JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
Heather VanCura
 
Introdução ao Oracle NoSQL
Introdução ao Oracle NoSQLIntrodução ao Oracle NoSQL
Introdução ao Oracle NoSQL
Bruno Borges
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
Bruno Borges
 

What's hot (20)

Dockerizing Oracle Database
Dockerizing Oracle Database Dockerizing Oracle Database
Dockerizing Oracle Database
 
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
 
20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
 
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
 
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David DelabasseeJavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
 
Supercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database PerformanceSupercharge your Code to get optimal Database Performance
Supercharge your Code to get optimal Database Performance
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
 
Introdução ao Oracle NoSQL
Introdução ao Oracle NoSQLIntrodução ao Oracle NoSQL
Introdução ao Oracle NoSQL
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
 

Similar to Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]

Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
Oracle Korea
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
Ivan Ma
 
APAC Tour 2019 update
APAC Tour 2019 updateAPAC Tour 2019 update
APAC Tour 2019 update
Heather VanCura
 
Bringing Java into the Open
Bringing Java into the Open Bringing Java into the Open
Bringing Java into the Open
Heather VanCura
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems
Aparna Gaonkar
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
Heather VanCura
 
JUG Tour November 2017
JUG Tour November 2017JUG Tour November 2017
JUG Tour November 2017
Heather VanCura
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
Heather VanCura
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
Curity
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018
CodeOps Technologies LLP
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
Ed Burns
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
Tinku Ajit
 
Java, the JCP & YOU
Java, the JCP & YOU Java, the JCP & YOU
Java, the JCP & YOU
Heather VanCura
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
David Buck
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Ed Burns
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Jingnan Zhou
 

Similar to Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738] (20)

Cloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm OverviewCloud Native 자바 플랫폼: Graalvm Overview
Cloud Native 자바 플랫폼: Graalvm Overview
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
 
APAC Tour 2019 update
APAC Tour 2019 updateAPAC Tour 2019 update
APAC Tour 2019 update
 
Bringing Java into the Open
Bringing Java into the Open Bringing Java into the Open
Bringing Java into the Open
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
 
JUG Tour November 2017
JUG Tour November 2017JUG Tour November 2017
JUG Tour November 2017
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
 
Java, the JCP & YOU
Java, the JCP & YOU Java, the JCP & YOU
Java, the JCP & YOU
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
 

More from David Buck

JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
 
Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]
David Buck
 
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
David Buck
 
invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]
David Buck
 
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
David Buck
 
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
David Buck
 
Z Garbage Collector
Z Garbage CollectorZ Garbage Collector
Z Garbage Collector
David Buck
 
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
David Buck
 
Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018
David Buck
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
David Buck
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
David Buck
 
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
David Buck
 
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
David Buck
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
 
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
David Buck
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
David Buck
 
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
David Buck
 

More from David Buck (20)

JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
 
Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]Java Bytecode Crash Course [Code One 2019]
Java Bytecode Crash Course [Code One 2019]
 
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...
 
invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]invokedynamic for Mere Mortals [Code One 2019]
invokedynamic for Mere Mortals [Code One 2019]
 
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...
 
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
 
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]
 
Z Garbage Collector
Z Garbage CollectorZ Garbage Collector
Z Garbage Collector
 
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
 
Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018Var handles jjug_ccc_spring_2018
Var handles jjug_ccc_spring_2018
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
 
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ  JVM 特集  2015年8月]
HotSpot のロック: A Peek Under the Hood [JJUG ナイトセミナ JVM 特集 2015年8月]
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
 
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]
 

Recently uploaded

What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
TwisterTools
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
AI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdfAI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdf
ayushiqss
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
sofiafernandezon
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
ThousandEyes
 
Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile OfferPanvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
$A19
 
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai AvailableDombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
cristine510
 
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
shristi verma
 
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile ServiceMumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
kolkata dolls
 
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
arvindkumarji156
 
@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...
 @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava... @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava...
@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...
DiyaSharma6551
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
e-Definers Technology
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
sachin chaurasia
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
 @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ... @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
Mona Rathore
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
Hironori Washizaki
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Estuary Flow
 

Recently uploaded (20)

What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
AI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdfAI Chatbot Development – A Comprehensive Guide  .pdf
AI Chatbot Development – A Comprehensive Guide  .pdf
 
ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
 
Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile OfferPanvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
Panvel @Call @Girls Whatsapp 9833363713 With High Profile Offer
 
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai AvailableDombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
Dombivli @Call @Girls 🛴 9930687706 🛴 Aaradhaya Best High Class Mumbai Available
 
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
₹Call ₹Girls Andheri West 09967584737 Deshi Chori Near You
 
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile ServiceMumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
Mumbai @Call @Girls Whatsapp 9930687706 With High Profile Service
 
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
Bhiwandi @Call @Girls Whatsapp 000000000 With Best And No 1
 
@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...
 @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava... @Call @Girls in Ahmedabad 🐱‍🐉  XXXXXXXXXX 🐱‍🐉  Best High Class Ahmedabad Ava...
@Call @Girls in Ahmedabad 🐱‍🐉 XXXXXXXXXX 🐱‍🐉 Best High Class Ahmedabad Ava...
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
 @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ... @Call @Girls in Tiruppur 🤷‍♂️  XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
@Call @Girls in Tiruppur 🤷‍♂️ XXXXXXXX 🤷‍♂️ Tanisha Sharma Best High Class ...
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
 

Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]

  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) CON3738 David Buck Principal Member of Technical Staff Java Platform Group October 4th, 2017 Confidential – Oracle Internal/Restricted/Highly Restricted 3
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement 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, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 4
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • JVM Sustaining Engineer • OpenJDK 8 Update Project Maintainer • JavaOne Rock Star • Co-author of Oracle WebLogic Server 11g 構築・運用ガイド • @DavidBuckJP • https://blogs.oracle.com/buck/ Hi There!
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda Warnings AoT Basics Similar Functionality Usage 1 2 3 4
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings • AoT is still experimental and not yet officially supported
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings • AoT is still experimental and not yet officially supported • Currently only Linux on AMD64 (w/ libelf.so) is supported
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings • AoT is still experimental and not yet officially supported • Currently only Linux on AMD64 (w/ libelf.so) is supported • No official documentation (only the JEP)
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Warnings • AoT is still experimental and not yet officially supported • Currently only Linux on AMD64 (w/ libelf.so) is supported • No official documentation (only the JEP) • There is no official roadmap for support yet
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | AoT Basics
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why learn about Java AoT?
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why learn about Java AoT? • May be supported in the future
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why learn about Java AoT? • May be supported in the future • Excuse to study other HotSpot technologies
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why learn about Java AoT? • May be supported in the future • Excuse to study other HotSpot technologies • Fun
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model (Interpreter) MyClass.java MyClass.class java (HotSpot) javac
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model (JIT) MyClass.java MyClass.class java (HotSpot) javac Machine Language (in memory)
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT)
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) • Methods get compiled
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) • Methods get compiled • Compilation is expensive (both in cpu time and memory)
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) • Methods get compiled • Compilation is expensive (both in cpu time and memory) • ML version is fast
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) • Methods get compiled • Compilation is expensive (both in cpu time and memory) • ML version is fast • Is JIT really faster than an interpreter?
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT)
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT)
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) Better performance than an interpreter?
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) Better performance than an interpreter? Depends on your definition of “performance”
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ time ./hello_j1 Hello JavaOne! real 0m0.002s user 0m0.001s $ time java HelloJ1 Hello JavaOne! real 0m0.104s user 0m0.077s sys 0m0.020s Just in Time Compilation (JIT)
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) Weak Point • Compilation overhead is high – Delay before native code can be executed – Heavy resource (memory / CPU cycles) consumption • Interpretation is better for non-hot methods
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) (HotSpot’s Implimentation) • All methods start off being interpreted • Hot methods identified by sample-based profiling • Hot methods are compiled • Non-hot methods continue to be interpreted
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Even with HotSpot’s JIT • Application startup time is longer • It takes longer to achieve peak performance • Compilation consumes a lot of memory • There are platforms where runtime code generation is not allowed Compared to native (C/C++) compilation
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Just in Time Compilation (JIT) HotSpot’s Implementation A tale of two compilers… • C2 – For server use – Heavy optimization – Dependent on profiling data collected by the interpreter – Default CompileThreshold: 10000 • C1 – For client use – Less optimization – Not dependent on profiling data – Default CompileThreshold : 1500
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Ahead of Time (AoT) Strategy • Generate machine code before runtime • Load preexisting machine code during runtime • No need to JIT compile code at runtime
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model (AoT) MyClass.java MyClass.class java (HotSpot) javac Machine Language (in memory)
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model (AoT) MyClass.java MyClass.class java (HotSpot) javac my_class.so jaotc
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model java (HotSpot) Machine Language (in memory) java (HotSpot) Machine Language (in memory) java (HotSpot) Machine Language (in memory) java (HotSpot) Machine Language (in memory)
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Build / Execution Model java (HotSpot) java (HotSpot) java (HotSpot) java (HotSpot) my_class.so
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT)
  • 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★
  • 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★ • Less time to peak performance / steady state ★
  • 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★ • Less time to peak performance / steady state ★ • Less runtime compilation overhead (CPU / memory) ★
  • 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★ • Less time to peak performance / steady state ★ • Less runtime compilation overhead (CPU / memory) ★ • Native code can be shared across multiple processes ★
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★ • Less time to peak performance / steady state ★ • Less runtime compilation overhead (CPU / memory) ★ • Native code can be shared across multiple processes ★ • Native code performance even on platforms that disallow JIT ★
  • 45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Advantages of Ahead of Time (AoT) • Faster startup times ★ • Less time to peak performance / steady state ★ • Less runtime compilation overhead (CPU / memory) ★ • Native code can be shared across multiple processes ★ • Native code performance even on platforms that disallow JIT ★ ★ YMMV
  • 46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ?
  • 47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Similar Functionality
  • 48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Similar Functionality • Tiered Compilation • Class Data Sharing(CDS) / AppCDS
  • 49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Tiered Compilation • Server JVM without Tiered Compilation – Interpreter (w/ profiling) – C2 • Server JVM with Tiered Compilation – Interpreter (w/ profiling) – C1 (w/ profiling) – C2
  • 50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | No Class Data Sharing java (HotSpot) Class Data (in memory)java (HotSpot) Class Data (in memory) java (HotSpot) Class Data (in memory) java (HotSpot) Class Data (in memory)
  • 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Class Data Sharing java (HotSpot) java (HotSpot) java (HotSpot) java (HotSpot) Class Data classes.jsa
  • 52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • Class Data Sharing – Only Java SE Class Library • AppCDS – Includes application classes as well
  • 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Same as AoT • Tiered Compilation – Quicker warm up • Class Data Sharing(CDS) / AppCDS – Quicker warm up – Lower total memory footprint Different from AoT • No machine (native) code is persisted or shared Similar Functionality
  • 54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Corporate Photography Collection
  • 55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Usage
  • 56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | A New Tool: jaotc MyClass.class my_class.sojaotc
  • 57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --output libHelloAOT.so HelloAoT.class jaotc
  • 58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --help Usage: jaotc <options> list list A : separated list of class names, modules, jar files or directories which contain class files. where options include: --output <file> Output file name --class-name <class names> List of classes to compile --jar <jarfiles> List of jar files to compile --module <modules> List of modules to compile --directory <dirs> List of directories where to search for files to compile --search-path <dirs> List of directories where to search for specified files --compile-commands <file> Name of file with compile commands --compile-for-tiered Generate profiling code for tiered compilation --compile-with-assertions Compile with java assertions --compile-threads <number> Number of compilation threads to be used --ignore-errors Ignores all exceptions thrown during class loading --exit-on-error Exit on compilation errors --info Print information during compilation --verbose Print verbose information --debug Print debug information --help Print this usage message --version Version information -J<flag> Pass <flag> directly to the runtime system jaotc (On-line Help)
  • 59. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --info --output libHelloAOT.so HelloAoT.class Compiling libHelloAOT... 1 classes found (30 ms) 2 methods total, 2 methods to compile (4 ms) Compiling with 8 threads . 2 methods compiled, 0 methods failed (409 ms) Parsing compiled code (1 ms) Processing metadata (15 ms) Preparing stubs binary (1 ms) Preparing compiled binary (1 ms) Creating binary: libHelloAOT.o (8 ms) Creating shared library: libHelloAOT.so (13 ms) Total time: 912 ms jaotc (--info Flag)
  • 60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --info --compile-with-assertions --output libHelloAOT.so HelloAoT.class jaotc (--compile-with-assertions Flag)
  • 61. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --compile-commands cc.txt --output libHelloAOT.so HelloAoT.class $ cat cc.txt exclude org.sample.code.MyClass.method* exclude org.sample.code.MyClass.<init> jaotc (--compile-commands Flag)
  • 62. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --output libjava.base.so --module java.base jaotc (Modules)
  • 63. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc --output libjava.base.so --jar my-spiffy-app.jar jaotc (Jar Files)
  • 64. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc -J-XX:-UseCompressedOop --output libHelloAOT.so HelloAoT.class VM Options are important here! (more to come…) jaotc (VM Options)
  • 65. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | jaotc (--compile-for-tiered Flag) • jaotc uses Graal to compile • Performance is similar to C1 • --compile-for-tiered generates code that includes profiling instrumentation needed by C2 Confidential – Oracle Internal/Restricted/Highly Restricted 65
  • 66. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ java -XX:AOTLibrary=./libHelloAoT.so HelloAoT Runtime
  • 67. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ java -XX:AOTLibrary=./libHelloAoT.so HelloAoT Hello AoT! $ Runtime
  • 68. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ java -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT Runtime (-XX:+/-PrintAOT)
  • 69. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ builds/jdk-9/bin/java -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT 13 1 loaded ./libHelloAoT.so aot library 76 1 aot[ 1] HelloAoT.<init>()V 76 2 aot[ 1] HelloAoT.main([Ljava/lang/String;)V Hello AoT! $ Runtime (-XX:+/-PrintAOT)
  • 70. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ java -XX:-UseCompressedOops -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT Runtime (Compressed Oops Disabled)
  • 71. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ java -XX:-UseCompressedOops -XX:+PrintAOT -XX:AOTLibrary=./libHelloAoT.so HelloAoT Shared file ./libHelloAoT.so error: UseCompressedOops has different value 'true' from current 'false' 7 1 skipped ./libHelloAoT.so aot library Hello AoT! $ Runtime (Compressed Oops Disabled)
  • 72. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ builds/jdk-9/bin/java -XX:-UseCompressedOops -XX:AOTLibrary=./libHelloAoT.so HelloAoT Hello AoT! $ Runtime (Compressed Oops Disabled)
  • 73. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ jaotc -J-XX:-UseCompressedOop --output libHelloAOT.so HelloAoT.class jaotc (Be sure to synchronize VM options) Compressed OOPs Normal OOPs G1 -J-XX:+UseCompressedOops -J-XX:+UseG1GC -J-XX:-UseCompressedOops -J-XX:+UseG1GC ParallelGC -J-XX:+UseCompressedOops -J-XX:+UseParallelGC -J-XX:-UseCompressedOops -J-XX:+UseParallelGC
  • 74. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is < 4GB, 32 MSB of every heap address is the same! • We can store just the 32 LSB of each address • Each reference field is half the size Confidential – Oracle Internal/Restricted/Highly Restricted 74 Compressed Oops 64-bit Address
  • 75. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is < 4GB, 32 MSB of every heap address is the same! • We can store just the 32 LSB of each address • Each reference field is half the size Confidential – Oracle Internal/Restricted/Highly Restricted 75 Compressed Oops 32 MSB 32 LSB
  • 76. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is < 4GB, 32 MSB of every heap address is the same! • We can store just the 32 LSB of each address • Each reference field is half the size Confidential – Oracle Internal/Restricted/Highly Restricted 76 Compressed Oops Always the same! 32 LSB
  • 77. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is < 4GB, 32 MSB of every heap address is the same! • We can store just the 32 LSB of each address • Each reference field is half the size Confidential – Oracle Internal/Restricted/Highly Restricted 77 Compressed Oops 32 LSB
  • 78. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is < 4GB, 32 MSB of every heap address is the same! • We can store just the 32 LSB of each address • Each reference field is half the size • uncompressed_oop = heap_base + compressed_oop Confidential – Oracle Internal/Restricted/Highly Restricted 78 Compressed Oops 32 LSB
  • 79. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is > than 4GB but < 32GB we can still compress the Oop • 64-bit platform has an 8-byte alignment requirement • 3 LSB of every heap address are always zero • So we can shift the address 3 bits right/left to compress/uncompress Confidential – Oracle Internal/Restricted/Highly Restricted 79 Compressed Oops 64-bit Address
  • 80. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is > than 4GB but < 32GB we can still compress the Oop • 64-bit platform has an 8-byte alignment requirement • 3 LSB of every heap address are always zero • So we can shift the address 3 bits right/left to compress/uncompress Confidential – Oracle Internal/Restricted/Highly Restricted 80 Compressed Oops 64-bit Address 000
  • 81. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is > than 4GB but < 32GB we can still compress the Oop • 64-bit platform has an 8-byte alignment requirement • 3 LSB of every heap address are always zero • So we can shift the address 3 bits right/left to compress/uncompress Confidential – Oracle Internal/Restricted/Highly Restricted 81 Compressed Oops 32-bit 000
  • 82. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is > than 4GB but < 32GB we can still compress the Oop • 64-bit platform has an 8-byte alignment requirement • 3 LSB of every heap address are always zero • So we can shift the address 3 bits right/left to compress/uncompress Confidential – Oracle Internal/Restricted/Highly Restricted 82 Compressed Oops 32-bit
  • 83. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • If heap is > than 4GB but < 32GB we can still compress the Oop • 64-bit platform has an 8-byte alignment requirement • 3 LSB of every heap address are always zero • So we can shift the address 3 bits right/left to compress/uncompress • uncompressed_oop = heap_base + (compressed_oop << 3) Confidential – Oracle Internal/Restricted/Highly Restricted 83 Compressed Oops 32-bit
  • 84. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 84 Write Barriers
  • 85. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 85 Write Barriers Young Not Young
  • 86. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 86 Write Barriers Young Not Young! New
  • 87. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 87 Write Barriers Young Not Young! New !
  • 88. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 88 Write Barriers Young Not Young Card Table
  • 89. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 89 Write Barriers Young Not Young! New Card Table
  • 90. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why do we need to synchronize VM Options? • To avoid marking the entire heap, we need to keep track of changes Confidential – Oracle Internal/Restricted/Highly Restricted 90 Write Barriers Young Not Young! New ! Card Table
  • 91. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Known Library Locations ($JAVA_HOME/lib/) • -XX:-UseCompressedOops -XX:+UseG1GC : libjava.base.so • -XX:+UseCompressedOops -XX:+UseG1GC : libjava.base-coop.so • -XX:-UseCompressedOops -XX:+UseParallelGC : libjava.base-nong1.so • -XX:+UseCompressedOops -XX:+UseParallelGC : libjava.base-coop-nong1.so Confidential – Oracle Internal/Restricted/Highly Restricted 91 VMOptions must match library name
  • 92. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Known Library Locations ($JAVA_HOME/lib/) • jdk.compiler • jdk.scripting.nashorn • jdk.vm.ci • jdk.vm.compiler Confidential – Oracle Internal/Restricted/Highly Restricted 92 Other known JDK modules
  • 93. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Summary • Value – System reaches peak performance quicker ★ – Reduced total footprint of multiple JVMs running same code ★ – Native code performance on platforms that do not allow JIT ★ • Risks – Still experimental, not officially supported – No official documentation (besides the JEP) – Only available on AMD64 Linux – Does not support invokedynamic (JSR 292) or custom classloaders
  • 94. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Summary • Value – System reaches peak performance quicker ★ – Reduced total footprint of multiple JVMs running same code ★ – Native code performance on platforms that do not allow JIT ★ • Risks – Still experimental, not officially supported – No official documentation (besides the JEP) – Only available on AMD64 Linux – Does not support invokedynamic (JSR 292) or custom classloaders ★ YMMV
  • 95. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Other AoT Sessions at J1 • HotSpot AOT Internals and AOT + CDS Performance Results [CON7772] – Thursday, Oct 05, 11:00 a.m. - 11:45 a.m. | Marriott Marquis (Yerba Buena Level) - Salon 12 – JVMLS version of talk: https://www.youtube.com/watch?v=n5DCg6M2MDM • JIT Versus AOT: Unity and Conflict of Dynamic and Static Compilers for Java [CON3230] – Thursday, Oct 05, 1:00 p.m. - 1:45 p.m. | Marriott Marquis (Yerba Buena Level) - Salon 14 Confidential – Oracle Internal/Restricted/Highly Restricted 95
  • 96. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | References • JEP 295: Ahead-of-Time Compilation http://openjdk.java.net/jeps/295 • Tiered Compilation https://docs.oracle.com/javase/8/docs/technotes/guides/vm/performance-enhancements-7.html#tieredcompilation • Class Data Sharing https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html • JEP draft: Application Class Data Sharing http://openjdk.java.net/jeps/8185996 • Ahead Of Time (AOT) Internals with Vladimir Kozlov and Igor Veresov https://www.youtube.com/watch?v=n5DCg6M2MDM Confidential – Oracle Internal/Restricted/Highly Restricted 96
  • 97. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Stay connected • Join us: DevOps Corner (Developer Lounge – Moscone West) • Learn more: openjdk.java.net | wercker.com/java • Follow: @OpenJDK, @wercker #JavaOne #DevOps 97
  • 98. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The preceding 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, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 98