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.
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...David Buck
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.
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]David Buck
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.
invokedynamic for Mere Mortals [Code One 2019]David Buck
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.
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...David Buck
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.
Java Bytecode Crash Course [Code One 2019]David Buck
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.
Covers the common issues seen when migrating from Java 8 to Java 9. This deck shows simplified examples of the issues and code snippets of how to address them.
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...Peter Pilgrim
In this presentation, we will focus on the recent JSF enhancements to do with Faces View, Flows and Conversational Scope. Java EE 7 is relevant to digital developers, because it can integrate recent innovation in content front-end and content design and provide rich experiences, whilst allowing responsive and adaptive techniques. This talk will explore how to the new features can bootstrap your enterprise software development with Java.
We will look at CDI and EJB integration and demonstrate how to best to get the application structure in the correct fashion for a modern Digital by Default application. If you want to see especially how JSF, Faces and the new page view technologies fit in Java EE 7, this is the session for you.
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimPayara
The talk presented by Peter Pilgrim at the London JavaEE & GlassFish User Group event on the 18th of February 2015.
find out more at: http://payara.co/february_london_glassfish_user_group_with_peter
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...David Buck
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.
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]David Buck
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.
invokedynamic for Mere Mortals [Code One 2019]David Buck
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.
Hangs, Slowdowns, Starvation—Oh My! A Deep Dive into the Life of a Java Threa...David Buck
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.
Java Bytecode Crash Course [Code One 2019]David Buck
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.
Covers the common issues seen when migrating from Java 8 to Java 9. This deck shows simplified examples of the issues and code snippets of how to address them.
JavaOne 2015 CON5211 Digital Java EE 7 with JSF Conversations, Flows, and CDI...Peter Pilgrim
In this presentation, we will focus on the recent JSF enhancements to do with Faces View, Flows and Conversational Scope. Java EE 7 is relevant to digital developers, because it can integrate recent innovation in content front-end and content design and provide rich experiences, whilst allowing responsive and adaptive techniques. This talk will explore how to the new features can bootstrap your enterprise software development with Java.
We will look at CDI and EJB integration and demonstrate how to best to get the application structure in the correct fashion for a modern Digital by Default application. If you want to see especially how JSF, Faces and the new page view technologies fit in Java EE 7, this is the session for you.
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimPayara
The talk presented by Peter Pilgrim at the London JavaEE & GlassFish User Group event on the 18th of February 2015.
find out more at: http://payara.co/february_london_glassfish_user_group_with_peter
Happy Java SE 8 was released! But for the Java EE?
This materials shows the current status of EE 6/7 with SE 8, and some limitation in current EE 7 app servers with 8.
This session materials is for the Japan Java Users Group (JJUG) CCC 2014 Spring session. #jjgc_ccc #ccc_r11
Different Java implementations exist. Your code lives multiple lifes inside them and JIT compilers provide performance behind the scenes. Some JVMs have ahead-of-time (AOT) compilation that shortens the path. Statement of the problem is different, as well as solutions. Let's see why do we need pre-compiled code, how it can already be produced and used with Hotspot. How Project Graal lets Java to compile Java to native code and how new Java-Level JVM Compiler Interface incorporates Java to compilation work of JVM.
Consideration points for migrating from older pre-J2EE, J2EE 1.2-1.4, Java EE 5-6 to EE 7, and migration points especially for web front-end systems and back-ends. JSP to JSF, EJB to CDI with migration procedure details. Slide materials on Java Day Tokyo 2016.
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMDanHeidinga
An updated version of my "OpenJ9: Under the hood of the next open source JVM" that covers where it was open sourced (github.com/eclipse/openj9), how to build it, and then deep dives into the ROM/RAM divide before touching on interpreter, JIT and AOT.
Static (ahead-of-time) compilation of code appeared in Oracle JDK 9. We have already discussed why this is necessary, and the scope of the current implementation. Now it makes sense to talk about the technical details. Anyone can easily suffer from some already known problems of current implementation. From the other hand it makes sense to test potential benefits and to try a tiny piece of bright future. But one must realize how to try it right. What information is generated by the AOT and how it is generated, how compiled AOT code interacts with Hotspot. What you can do with AOT code by external tools, and how to infiltrate into the compilation process. And of course, what grips to twist, and what will be the performance with AOT.
FOSDEM 2017 - Open J9 The Next Free Java VMCharlie Gracie
I will discuss the J9 VM technology and our plans on open sourcing the technology. My team has already open sourced a lot of the underlying technology as part of the Eclipse OMR project and now we are working open sourcing the rest of the technology.
The document discusses Concierge, an OSGi framework designed for embedded devices. It has the following key points:
1. Concierge is an implementation of the OSGi dynamic module system that aims to have a small footprint suitable for embedded devices while maintaining compatibility with the OSGi specification.
2. Experiments show Concierge has a footprint of only 245kB, much smaller than other OSGi frameworks, while still supporting full OSGi R5 compatibility.
3. Concierge is designed to have usability in mind for embedded systems, staying close to OSGi standards with limited additional functionality and good integration between application behavior and framework events.
J9: Under the hood of the next open source JVMDanHeidinga
A description of how bytecodes are loaded into the J9VM and how bytecode execution occurs, plus IBM's plans to open source J9.
Session is the "new hire" talk given to all new J9 VM team members.
The document discusses CompletableFuture in Java and provides the following information:
- CompletableFuture allows composing asynchronous operations in a sequential manner without blocking threads. It implements Future and CompletionStage interfaces.
- The API includes methods for creating CompletableFutures, transforming results, error handling, combining results from multiple CompletableFutures, and retrieving final values.
- Benchmarks show CompletableFuture has lower overhead than using raw Future for simple asynchronous operations, especially when work is split across multiple threads.
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Arun Gupta
The document discusses the new features in Java EE 7 platform. Some of the key highlights include:
- Enhancements to CDI, Bean Validation, Interceptors, Concurrency utilities.
- JPA 2.1 features like schema generation, stored procedures, converters.
- JTA 1.2 allows transaction management on CDI managed beans.
- EJB 3.2 includes features like disabling passivation for stateful sessions, asynchronous methods and non-persistent timers.
- Other specifications like JMS 2.0, JAX-RS 2.0 that are part of Java EE 7 platform.
This document provides an overview of the Hierarchy Viewer tool in the Android SDK. It begins with background on SDKs and their importance. It then describes the goal of analyzing the Hierarchy Viewer to better understand Android UI debugging. The document proceeds to explain the architecture and functioning of the Hierarchy Viewer, including how it obtains and displays information about views and windows using techniques like Java reflection, annotations, and Binder IPC. It outlines the roadmap for the talk, which will cover these internals in more detail.
Haj 4344-java se 9 and the application server-1Kevin Sutter
Our presentation at InterConnect 2017 about Java SE 9 and our direct experiences with using it as our Java runtime for the WebSphere Liberty application server.
Carol McDonald discusses the key themes and technologies in Java EE 6, which was released on December 10, 2009. The major themes of Java EE 6 are right-sizing with modular profiles, extensibility through pluggability, and ease of development through features like dependency injection and managed beans. New and updated specifications in Java EE 6 include CDI 1.0, EJB 3.1, JPA 2.0, JSF 2.0, JAX-RS 1.1, and Servlet 3.0.
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
The document discusses the key features of Java EE 7 including improved developer productivity through more annotated POJOs, less boilerplate code, and a cohesive integrated platform. It highlights top features such as WebSocket client/server endpoints, batch applications, JSON processing, concurrency utilities, simplified JMS API, and more annotated POJOs. The document provides details on these features and code examples for concepts like WebSocket chat servers, JSON streaming API, batch job specification, and simplified JMS message sending.
Come hear about how IBM's J9 JVM approaches MethodHandle compilation. The MethodHandle architecture and the transitions from interpreted to compiled and finally to customized will be described. Recent performance optimizations will be touched on along with hints on how to aid the JVM to optimize your MethodHandle code.
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
This talks discuss our experiments with using the Eclipse OMR JitBuilder in the Lua 5.3. This talk gives an overview of the Eclipse OMR technology, Jit Builder, the work to consume the technology in Lua 5.3, current results and next steps.
This document provides release notes and supplementary information for Delphi 7. It notes that some components have been deprecated and recommends newer alternatives. It also describes changes made to string handling functions, warnings added by the compiler, and issues fixed in streaming of subcomponents. Finally, it provides notes on various other topics like Apache, UDDI, Windows XP input, and databases.
Building a web application with ontinuation monadsSeitaro Yuuki
The document discusses using continuation monads to build web applications. It introduces DWANGO and Niconico, and some problems with existing component technologies. Continuation monads allow components to be composed in a flexible way and are used to build the Niconico account system. Indexed continuation monads allow changing the result type of components. Various authentication, compression, and response formatting components are implemented as continuation monads to demonstrate their use.
The document discusses Java Mission Control, a tools suite from Oracle for production monitoring and diagnostics of Java applications. It provides an overview of Java Mission Control's purpose and design, supported platforms, main tools including a management console and flight recorder. It also covers installation, usage, and demonstrations of the management console and flight recorder tools.
This document provides instructions for embedding Oracle WebLogic Server within an ISV application. It discusses performing a silent installation of WebLogic Server, creating and configuring WebLogic domains through scripts, deploying applications through scripts, and managing/monitoring the WebLogic domain and servers through scripts or Java code. Appendices provide sample scripts for domain creation, application deployment, server administration tasks like adding managed servers to a cluster, and monitoring using JMX.
Happy Java SE 8 was released! But for the Java EE?
This materials shows the current status of EE 6/7 with SE 8, and some limitation in current EE 7 app servers with 8.
This session materials is for the Japan Java Users Group (JJUG) CCC 2014 Spring session. #jjgc_ccc #ccc_r11
Different Java implementations exist. Your code lives multiple lifes inside them and JIT compilers provide performance behind the scenes. Some JVMs have ahead-of-time (AOT) compilation that shortens the path. Statement of the problem is different, as well as solutions. Let's see why do we need pre-compiled code, how it can already be produced and used with Hotspot. How Project Graal lets Java to compile Java to native code and how new Java-Level JVM Compiler Interface incorporates Java to compilation work of JVM.
Consideration points for migrating from older pre-J2EE, J2EE 1.2-1.4, Java EE 5-6 to EE 7, and migration points especially for web front-end systems and back-ends. JSP to JSF, EJB to CDI with migration procedure details. Slide materials on Java Day Tokyo 2016.
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMDanHeidinga
An updated version of my "OpenJ9: Under the hood of the next open source JVM" that covers where it was open sourced (github.com/eclipse/openj9), how to build it, and then deep dives into the ROM/RAM divide before touching on interpreter, JIT and AOT.
Static (ahead-of-time) compilation of code appeared in Oracle JDK 9. We have already discussed why this is necessary, and the scope of the current implementation. Now it makes sense to talk about the technical details. Anyone can easily suffer from some already known problems of current implementation. From the other hand it makes sense to test potential benefits and to try a tiny piece of bright future. But one must realize how to try it right. What information is generated by the AOT and how it is generated, how compiled AOT code interacts with Hotspot. What you can do with AOT code by external tools, and how to infiltrate into the compilation process. And of course, what grips to twist, and what will be the performance with AOT.
FOSDEM 2017 - Open J9 The Next Free Java VMCharlie Gracie
I will discuss the J9 VM technology and our plans on open sourcing the technology. My team has already open sourced a lot of the underlying technology as part of the Eclipse OMR project and now we are working open sourcing the rest of the technology.
The document discusses Concierge, an OSGi framework designed for embedded devices. It has the following key points:
1. Concierge is an implementation of the OSGi dynamic module system that aims to have a small footprint suitable for embedded devices while maintaining compatibility with the OSGi specification.
2. Experiments show Concierge has a footprint of only 245kB, much smaller than other OSGi frameworks, while still supporting full OSGi R5 compatibility.
3. Concierge is designed to have usability in mind for embedded systems, staying close to OSGi standards with limited additional functionality and good integration between application behavior and framework events.
J9: Under the hood of the next open source JVMDanHeidinga
A description of how bytecodes are loaded into the J9VM and how bytecode execution occurs, plus IBM's plans to open source J9.
Session is the "new hire" talk given to all new J9 VM team members.
The document discusses CompletableFuture in Java and provides the following information:
- CompletableFuture allows composing asynchronous operations in a sequential manner without blocking threads. It implements Future and CompletionStage interfaces.
- The API includes methods for creating CompletableFutures, transforming results, error handling, combining results from multiple CompletableFutures, and retrieving final values.
- Benchmarks show CompletableFuture has lower overhead than using raw Future for simple asynchronous operations, especially when work is split across multiple threads.
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Arun Gupta
The document discusses the new features in Java EE 7 platform. Some of the key highlights include:
- Enhancements to CDI, Bean Validation, Interceptors, Concurrency utilities.
- JPA 2.1 features like schema generation, stored procedures, converters.
- JTA 1.2 allows transaction management on CDI managed beans.
- EJB 3.2 includes features like disabling passivation for stateful sessions, asynchronous methods and non-persistent timers.
- Other specifications like JMS 2.0, JAX-RS 2.0 that are part of Java EE 7 platform.
This document provides an overview of the Hierarchy Viewer tool in the Android SDK. It begins with background on SDKs and their importance. It then describes the goal of analyzing the Hierarchy Viewer to better understand Android UI debugging. The document proceeds to explain the architecture and functioning of the Hierarchy Viewer, including how it obtains and displays information about views and windows using techniques like Java reflection, annotations, and Binder IPC. It outlines the roadmap for the talk, which will cover these internals in more detail.
Haj 4344-java se 9 and the application server-1Kevin Sutter
Our presentation at InterConnect 2017 about Java SE 9 and our direct experiences with using it as our Java runtime for the WebSphere Liberty application server.
Carol McDonald discusses the key themes and technologies in Java EE 6, which was released on December 10, 2009. The major themes of Java EE 6 are right-sizing with modular profiles, extensibility through pluggability, and ease of development through features like dependency injection and managed beans. New and updated specifications in Java EE 6 include CDI 1.0, EJB 3.1, JPA 2.0, JSF 2.0, JAX-RS 1.1, and Servlet 3.0.
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
The document discusses the key features of Java EE 7 including improved developer productivity through more annotated POJOs, less boilerplate code, and a cohesive integrated platform. It highlights top features such as WebSocket client/server endpoints, batch applications, JSON processing, concurrency utilities, simplified JMS API, and more annotated POJOs. The document provides details on these features and code examples for concepts like WebSocket chat servers, JSON streaming API, batch job specification, and simplified JMS message sending.
Come hear about how IBM's J9 JVM approaches MethodHandle compilation. The MethodHandle architecture and the transitions from interpreted to compiled and finally to customized will be described. Recent performance optimizations will be touched on along with hints on how to aid the JVM to optimize your MethodHandle code.
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
This talks discuss our experiments with using the Eclipse OMR JitBuilder in the Lua 5.3. This talk gives an overview of the Eclipse OMR technology, Jit Builder, the work to consume the technology in Lua 5.3, current results and next steps.
This document provides release notes and supplementary information for Delphi 7. It notes that some components have been deprecated and recommends newer alternatives. It also describes changes made to string handling functions, warnings added by the compiler, and issues fixed in streaming of subcomponents. Finally, it provides notes on various other topics like Apache, UDDI, Windows XP input, and databases.
Building a web application with ontinuation monadsSeitaro Yuuki
The document discusses using continuation monads to build web applications. It introduces DWANGO and Niconico, and some problems with existing component technologies. Continuation monads allow components to be composed in a flexible way and are used to build the Niconico account system. Indexed continuation monads allow changing the result type of components. Various authentication, compression, and response formatting components are implemented as continuation monads to demonstrate their use.
The document discusses Java Mission Control, a tools suite from Oracle for production monitoring and diagnostics of Java applications. It provides an overview of Java Mission Control's purpose and design, supported platforms, main tools including a management console and flight recorder. It also covers installation, usage, and demonstrations of the management console and flight recorder tools.
This document provides instructions for embedding Oracle WebLogic Server within an ISV application. It discusses performing a silent installation of WebLogic Server, creating and configuring WebLogic domains through scripts, deploying applications through scripts, and managing/monitoring the WebLogic domain and servers through scripts or Java code. Appendices provide sample scripts for domain creation, application deployment, server administration tasks like adding managed servers to a cluster, and monitoring using JMX.
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...Jitendra Bafna
This document summarizes a presentation about using Anypoint Flex Gateway as a Kubernetes ingress controller. The presentation covers Universal API management with Flex Gateway, how it can manage APIs located anywhere. It then demonstrates installing Flex Gateway as a Kubernetes ingress controller and configuring authentication. Finally, it shows demonstrations of Flex Gateway routing traffic and enforcing policies for external services in both connected and local modes.
Splunk Conf 2014 - Splunking the Java Virtual MachineDamien Dallimore
This document discusses monitoring Java Virtual Machines (JVMs) using Splunk. It provides an overview of JVMs and describes various data sources for monitoring JVMs, including logs, JMX, instrumentation agents, and operating system metrics. It also discusses scaling monitoring to multiple JVMs and building Splunk apps for specific JVM-based applications and frameworks.
Oracle is positioning WebCenter Suite as a modern user experience platform that can be used to build portals, websites, composite applications and more using a common development framework. It provides tools for both business users and developers to easily assemble and customize solutions. WebCenter Suite integrates social and collaboration capabilities with leading enterprise content management and aims to provide a converged user experience across Oracle applications.
Production Time Profiling Out of the BoxMarcus Hirt
The document introduces Java Mission Control (JMC), a tools suite for production monitoring and diagnostics of Java applications. It provides an overview of JMC's components including the JMX Console for real-time monitoring and the Java Flight Recorder for low-overhead profiling. The document demonstrates JMC's installation and how to use the JMX Console and Flight Recorder. It also discusses JMC's experimental plugins and roadmap for future versions.
This document contains the agenda and slides from a presentation given at the TURBO'18 workshop on November 5, 2018. The presentation was titled "Eclipse OMR: Building Blocks for Polyglot" and was given by Xiaoli (Shelley) Liang. The presentation discussed Eclipse OMR, an open-source C++ library for building language runtimes. It described OMR's motivation of enabling reuse across languages to reduce costs, its core components, example projects using OMR, outreach efforts, and ways to get involved with the project.
Revised Adf security in a project centric environmentJean-Marc Desvaux
Presented for Oracle virtual Dev Day conference in 2011.
Check the full day agenda & on-demand sessions at:
http://www.oracle.com/technetwork/community/developer-day/virtual-dev-day-rea-369353.html
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
The document provides an overview of Android application development and the main building blocks of Android apps. It discusses the Android stack including the Linux kernel, native libraries, Dalvik VM, and application framework. It also summarizes the anatomy of a basic "Hello World" Android app including code, resources, and manifest file. The main building blocks of Android apps are described as activities, intents, services, content providers, and broadcast receivers.
The document discusses porting OpenJ9 JDK to RISC-V architecture. It involves preparing the software toolchain for cross-compilation to RISC-V, preparing hardware like the HiFive Unleashed development board, and developing OpenJ9 JDK through a mix of local and cross compilation. The status shows OpenJ9 JDK can execute in interpreter mode on the RISC-V emulator and HiFive board running Debian, with future work planned on JIT support, different GC strategies, and supporting other Java versions.
Synopsis on online shopping by sudeep singhSudeep Singh
This document provides an overview of an online shopping project developed using Java. It discusses the aims of improving customer and vendor services. It maintains customer payment and product details. The key features are high accuracy, flexibility and easy availability. It uses database tables to represent entities and relationships. The project allows customers to shop online and buy items which are then shipped to the submitted address. It has modules for customers and stores.
Integrating Ansible Tower with security orchestration and cloud managementJoel W. King
Ansible Durham Meetup, 13 July 2017.
Our guest speaker will be Joel W. King, Principal Architect at World Wide Technology. His focused is on enterprise Software-Defined Networking and network programmability.
He will talk about how Ansible Tower, through the northbound APIs, is integrated into the security orchestration platform Phantom Cyber, and using the same code base, extends infrastructure provisioning to Cisco CloudCenter (formerly CliQr), an application-centric public and private cloud management solution.
RICOH THETA x IoT Developers Contest : Cloud API Seminarcontest-theta360
This document summarizes a presentation about Ricoh's Cloud API and Theta camera functions. It introduces two current Cloud API functions - video communication and photo/media storage. Video communication allows video chat between devices using WebRTC. Photo storage provides APIs for uploading, storing, and downloading images. Future functions may include remote camera control, sensor data collaboration, image processing, and social media integration. The presentation demonstrated a simple image slideshow application using the Cloud APIs and SDK to access stored photos in a web browser.
This document discusses Selenium, an open source tool used for automating web application testing. It describes the different components of Selenium including Selenium IDE for recording and playback of tests, Selenium WebDriver for programmatically controlling browsers, and Selenium Grid for running tests in parallel across multiple machines. It discusses the architecture of Selenium WebDriver, how it uses layers of libraries with Google Closure Library at the bottom. The document focuses on how the remote WebDriver protocol was developed to provide a uniform interface across language bindings and details how this protocol was initially implemented between the Firefox driver and Firefox browser using the XPCOM system.
The document discusses a presentation on VLSI design given by students after an industrial training. It provides an introduction to VLSI, describes software used in VLSI design like DSCH, Xilinx, Altera and Microwind. It explains VLSI design hierarchy, basic VHDL code structure and Verilog code structure. It also discusses programmable logic device and the downloading process on a PLD using Xilinx. The conclusion states that VLSI design has significant scope as a career.
Selenium is a program mechanization instrument, normally utilized for composing end-to-end trial of web applications.
A program mechanization apparatus does precisely what you would expect: robotize the control of a program so dreary errands can be computerized. It sounds like a straightforward issue to comprehend, however as we will see, a great deal needs to occur off camera to influence it to work.
Before portraying the engineering of Selenium it sees how the different related bits of the venture fit together. At an abnormal state, Selenium is a suite of three apparatuses. The first of these apparatuses, Selenium IDE, is an expansion for Firefox that enables clients to record and playback tests.
The last device, Selenium Grid, makes it conceivable to utilize the Selenium APIs to control program examples circulated over a framework of machines, enabling more tests to keep running in parallel. selenium training in Bangalore - Inside the undertaking, they are alluded to as "IDE", "WebDriver" and "Lattice". This part investigates the engineering of Selenium WebDriver.
Selenium is a program mechanization instrument, normally utilized for composing end-to-end trial of web applications.
A program mechanization apparatus does precisely what you would expect: robotize the control of a program so dreary errands can be computerized. It sounds like a straightforward issue to comprehend, however as we will see, a great deal needs to occur off camera to influence it to work.
Before portraying the engineering of Selenium it sees how the different related bits of the venture fit together. At an abnormal state, Selenium is a suite of three apparatuses. The first of these apparatuses, Selenium IDE, is an expansion for Firefox that enables clients to record and playback tests.
The last device, Selenium Grid, makes it conceivable to utilize the Selenium APIs to control program examples circulated over a framework of machines, enabling more tests to keep running in parallel. selenium training in Bangalore - Inside the undertaking, they are alluded to as "IDE", "WebDriver" and "Lattice". This part investigates the engineering of Selenium WebDriver.
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...Sanae BEKKAR
Voici le support de notre présentation du dernier Oracle Virtual Meetup , qui s'est déroulé le 07 Janvier 2020 , auquel on s'est concentré sur la découverte du service Oracle Blockchain Platform, qui offre une solution pré-assemblée pour la construction et l'exécution de SMart Contrat et maintient un ledger distribué inviolable , à travers le Business case 'D-check' la maintenance des pièces de l'avion , l'un des process les plus complexe du monde de l'Aviation .
Rejoignez-nous : https://www.meetup.com/fr-FR/Oracle-Developer-Meetup-France
Bonne lecture!
Similar to JDK Mission Control: Where We Are, Where We Are Going [Code One 2019] (20)
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.
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).
3月20日にリリース予定のJDK10では12のJEPが提案され、実装/実現される見通しです。今回注目の新機能はJEP286: Local-Variable Type Inference- ローカル変数の型省略(var記法)です。このセッションではこのJEPの解説を中心に、その他主なJEPの紹介を行います。
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]David Buck
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.
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]David Buck
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.
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]David Buck
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.
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
Java SE 8の主要な機能として、Lambda(クロージャ)とデフォルト・メソッド(従来ディフェンダー・メソッドもしくはエクステンション・メソッドと呼ばれていた)があります。クロージャを言語に追加することによってアプリケーションやライブラリに新たな表現の機会が与えられましたが、実際にはどのように実装すべきなのでしょうか。Lambdaはインナー・クラスによってシンプルでかつ文法的にコンパクトになるということは広く理解されていると思います。しかし、現実にはLambdaによる記述は、Invokedynamicを使った実装によって従来のJavaとは異なったものになっています。本セッションでLambdaについて、さらに深く理解してください。
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]David Buck
去年のJJUGナイトセミナー JVM特集で実施した「HotSpot のロック: A Peek Under the Hood」の続きのセッションです。
java.util.concurrentやJava Memory Modelの実装について、いくつかご紹介します。これらで不可欠な技術がJVMとクラス・ライブラリでどのように提供されているかを簡単に説明します。たとえば、volatileキーワードの利用時に、JITコンパイルによって生成されるコードはどのように変わるかを分析します。
InvokeDynamic for Mere Mortals [JavaOne 2015 CON7682]David Buck
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.
HotSpot Synchronization, A Peek Under the Hood [JavaOne 2015 CON7570]David Buck
While there are many excellent resources about how to correctly use synchronization in your own code, what happens at the JVM level is still often a mystery for most users. In this session, I will pull back the curtain on HotSpot's locking implementation. We will look at the various types of locks that exist within HotSpot (thin, inflated, biased, etc.), how they are implemented, and the impact they have on your code's performance. We will also look at the various types of profiling information you can collect with tools like the Java Flight Recorder to better understand how locks are used by your application. Finally, we will look at the most common JVM tuning options for HotSpot and give some general tuning guidelines.
Let’s Write Our Own Chip-8 Interpreter! [JavaOne 2017 CON3584] David Buck
The Chip-8 language is a very simple virtual machine specification for which we can easily build a runtime in Java. Due to its simplicity, the implementation for a Chip-8 interpreter can easily be grasped and explained in detail during this single session. Despite this simplicity, the presentation covers many of the issues faced when we use Java to emulate/simulate other architectures. It also looks at some common issues faced by emulation authors when using the Java platform to implement runtimes for more-complex architectures such as 8-bit/16-bit computers or even early home video game systems.
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...David Buck
Although it’s not even remotely a new feature, JIT compilation in HotSpot continues to evolve at a staggering pace. Even for people very familiar with C1/C2, JDK 9 continues this evolution with many user-visible changes such as the compiler directive framework, allowing much-finer-grained control of the compilation process. This is a good time for a thorough “review,” starting at the beginning and providing an overview of HotSpot’s JIT compilation, along with many of the ways users can tune and monitor it. Specifically, this demo-heavy session covers C1/C2 differences, tiered compilation, JIT logging, compiler directives (new in JDK 9), hsdis, and other important features.
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]David Buck
presentation video: https://www.youtube.com/watch?v=mhravU1HL4k
One of the lesser-known features coming with JDK 9 is experimental support for ahead-of-time (AOT) compilation. Compiling Java bytecode into ready-to-execute machine code before runtime means that many applications may benefit from quicker startup and, in the case of multiple JVM instances, even lower memory consumption. In this demo-heavy session, you will see what advantages AOT has to offer and, perhaps even more importantly, what its limitations are. You will also get the opportunity to see Java’s new AOT compilation in action and leave with the knowledge needed to experiment on your own later. Although Java’s AOT is not yet ready for production use, this is a great chance to get a sneak peek at one of HotSpot’s most exciting new technologies.
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]David Buck
OpenJDK is a huge open source project with hundreds of participants working on the backbone of Java SE, a platform that more than 9 million developers worldwide depend on. Yet despite this level of interest, many people initially find the process of contributing code to OpenJDK to be complicated and even intimidating. But this simple crash course covers all the basics, from setting up a work environment to submitting your first patch for review. Some of the topics covered: the Java Bug Database, using Mercurial to clone a repository and create a change set, jcheck, jtreg, webrevs, repository layouts, the OpenJDK code review process, and eventually even obtaining your own OpenJDK user ID (after several contributions).
Streamlining End-to-End Testing Automation with Azure DevOps Build & Release Pipelines
Automating end-to-end (e2e) test for Android and iOS native apps, and web apps, within Azure build and release pipelines, poses several challenges. This session dives into the key challenges and the repeatable solutions implemented across multiple teams at a leading Indian telecom disruptor, renowned for its affordable 4G/5G services, digital platforms, and broadband connectivity.
Challenge #1. Ensuring Test Environment Consistency: Establishing a standardized test execution environment across hundreds of Azure DevOps agents is crucial for achieving dependable testing results. This uniformity must seamlessly span from Build pipelines to various stages of the Release pipeline.
Challenge #2. Coordinated Test Execution Across Environments: Executing distinct subsets of tests using the same automation framework across diverse environments, such as the build pipeline and specific stages of the Release Pipeline, demands flexible and cohesive approaches.
Challenge #3. Testing on Linux-based Azure DevOps Agents: Conducting tests, particularly for web and native apps, on Azure DevOps Linux agents lacking browser or device connectivity presents specific challenges in attaining thorough testing coverage.
This session delves into how these challenges were addressed through:
1. Automate the setup of essential dependencies to ensure a consistent testing environment.
2. Create standardized templates for executing API tests, API workflow tests, and end-to-end tests in the Build pipeline, streamlining the testing process.
3. Implement task groups in Release pipeline stages to facilitate the execution of tests, ensuring consistency and efficiency across deployment phases.
4. Deploy browsers within Docker containers for web application testing, enhancing portability and scalability of testing environments.
5. Leverage diverse device farms dedicated to Android, iOS, and browser testing to cover a wide range of platforms and devices.
6. Integrate AI technology, such as Applitools Visual AI and Ultrafast Grid, to automate test execution and validation, improving accuracy and efficiency.
7. Utilize AI/ML-powered central test automation reporting server through platforms like reportportal.io, providing consolidated and real-time insights into test performance and issues.
These solutions not only facilitate comprehensive testing across platforms but also promote the principles of shift-left testing, enabling early feedback, implementing quality gates, and ensuring repeatability. By adopting these techniques, teams can effectively automate and execute tests, accelerating software delivery while upholding high-quality standards across Android, iOS, and web applications.
🏎️Tech Transformation: DevOps Insights from the Experts 👩💻campbellclarkson
Connect with fellow Trailblazers, learn from industry experts Glenda Thomson (Salesforce, Principal Technical Architect) and Will Dinn (Judo Bank, Salesforce Development Lead), and discover how to harness DevOps tools with Salesforce.
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
How GenAI Can Improve Supplier Performance Management.pdfZycus
Data Collection and Analysis with GenAI enables organizations to gather, analyze, and visualize vast amounts of supplier data, identifying key performance indicators and trends. Predictive analytics forecast future supplier performance, mitigating risks and seizing opportunities. Supplier segmentation allows for tailored management strategies, optimizing resource allocation. Automated scorecards and reporting provide real-time insights, enhancing transparency and tracking progress. Collaboration is fostered through GenAI-powered platforms, driving continuous improvement. NLP analyzes unstructured feedback, uncovering deeper insights into supplier relationships. Simulation and scenario planning tools anticipate supply chain disruptions, supporting informed decision-making. Integration with existing systems enhances data accuracy and consistency. McKinsey estimates GenAI could deliver $2.6 trillion to $4.4 trillion in economic benefits annually across industries, revolutionizing procurement processes and delivering significant ROI.
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...kalichargn70th171
Visual testing plays a vital role in ensuring that software products meet the aesthetic requirements specified by clients in functional and non-functional specifications. In today's highly competitive digital landscape, users expect a seamless and visually appealing online experience. Visual testing, also known as automated UI testing or visual regression testing, verifies the accuracy of the visual elements that users interact with.
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceICS
This webinar explores the “secure-by-design” approach to medical device software development. During this important session, we will outline which security measures should be considered for compliance, identify technical solutions available on various hardware platforms, summarize hardware protection methods you should consider when building in security and review security software such as Trusted Execution Environments for secure storage of keys and data, and Intrusion Detection Protection Systems to monitor for threats.
Photoshop Tutorial for Beginners (2024 Edition)alowpalsadig
Photoshop Tutorial for Beginners (2024 Edition)
Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."
Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
Photoshop Tutorial for Beginners (2024 Edition)Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
The importance of developing and designing programming in 2024
Programming design and development represents a vital step in keeping pace with technological advancements and meeting ever-changing market needs. This course is intended for anyone who wants to understand the fundamental importance of software development and design, whether you are a beginner or a professional seeking to update your knowledge.
Course objectives:
1. **Learn about the basics of software development:
- Understanding software development processes and tools.
- Identify the role of programmers and designers in software projects.
2. Understanding the software design process:
- Learn about the principles of good software design.
- Discussing common design patterns such as Object-Oriented Design.
3. The importance of user experience (UX) in modern software:
- Explore how user experience can improve software acceptance and usability.
- Tools and techniques to analyze and improve user experience.
4. Increase efficiency and productivity through modern development tools:
- Access to the latest programming tools and languages used in the industry.
- Study live examples of applications
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfkalichargn70th171
Moving to a more digitally focused era, the importance of software is rapidly increasing. Software tools are crucial for upgrading life standards, enhancing business prospects, and making a smart world. The smooth and fail-proof functioning of the software is very critical, as a large number of people are dependent on them.
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid
IBM watsonx Code Assistant for Z, our latest Generative AI-assisted mainframe application modernization solution. Mainframe (IBM Z) application modernization is a topic that every mainframe client is addressing to various degrees today, driven largely from digital transformation. With generative AI comes the opportunity to reimagine the mainframe application modernization experience. Infusing generative AI will enable speed and trust, help de-risk, and lower total costs associated with heavy-lifting application modernization initiatives. This document provides an overview of the IBM watsonx Code Assistant for Z which uses the power of generative AI to make it easier for developers to selectively modernize COBOL business services while maintaining mainframe qualities of service.
4. JVM Sustaining Engineer
OpenJDK 8 Update Project
Maintainer
JavaOne Rock Star
Co-author of Oracle WebLogic
Server 11g 構築・運用ガイド
@DavidBuckJP
https://blogs.oracle.com/buck/
Who am I? David Buck (left)
6. Introduction to JDK Mission Control and JDK Flight Recorder [DEV2316]
Marcus Hirt and Klara Ward
Monday 16:00 Moscone South Room 202
Improving Observability in Your Application with JFR and JMC [DEV3460]
Marcus Hirt and Mario Torre
Tuesday 11:30 Moscone South Room 201
Java Flight Recorder: Black Box of Java Applications[DEV3957]
Poonam Parhar
Wednesday 12:30 Moscone South Room 203
Robotics on JDK 11? With Modules? Are You… [DEV2329]
Marcus Hirt, Miro Wengner, and Robert Savage
Wednesday 16:00 Moscone South Room 313
Four Productive Ways to Use Open Source JFR and JMC Revisited [DEV3118]
Sven Reimers and Martin Klähn
Thursday 11:15 Moscone South Room 304
Enhanced Java Flight Recorder at Alibaba [DEV3667]
Sanhong Li, Fangxi Yin, and Guangyu Zhu
Thursday 12:15 Moscone South Room 203
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Hirofumi Iwasaki and Hiroaki Nakada
Thursday 13:15 Moscone South Room 201
7. Introduction to JDK Mission Control and JDK Flight Recorder [DEV2316]
Marcus Hirt and Klara Ward
Monday 16:00 Moscone South Room 202
Improving Observability in Your Application with JFR and JMC [DEV3460]
Marcus Hirt and Mario Torre
Tuesday 11:30 Moscone South Room 201
Java Flight Recorder: Black Box of Java Applications[DEV3957]
Poonam Parhar
Wednesday 12:30 Moscone South Room 203
Robotics on JDK 11? With Modules? Are You… [DEV2329]
Marcus Hirt, Miro Wengner, and Robert Savage
Wednesday 16:00 Moscone South Room 313
Four Productive Ways to Use Open Source JFR and JMC Revisited [DEV3118]
Sven Reimers and Martin Klähn
Thursday 11:15 Moscone South Room 304
Enhanced Java Flight Recorder at Alibaba [DEV3667]
Sanhong Li, Fangxi Yin, and Guangyu Zhu
Thursday 12:15 Moscone South Room 203
Performance Monitoring with Java Flight Recorder on OpenJDK [DEV2406]
Hirofumi Iwasaki and Hiroaki Nakada
Thursday 13:15 Moscone South Room 201
9. Several Closely Related Technologies
(JRockit / Java / JDK) Mission Control
Flight Recording
Oracle JDK: JDK 7
OpenJDK: JDK 11
JEP 167: Event-Based JVM Tracing (JDK 7)
JEP 328: Flight Recorder (JDK 11)
10. Flight Recorder
Technology to generate and persist JVM event data
Low-overhead
Intended for use in production
Viable for “always on” use-case
11. Mission Control
Eclipse-based (RCP) GUI tool
Visualization of Flight Recording data
Automated Flight Recording analysis
JMX console for real-time monitoring (and control) of target
Plug-in framework for additional functionality
Support for integration into Eclipse IDE
12. Mission Control
Eclipse-based (RCP) GUI tool
Visualization of Flight Recording data
Automated Flight Recording analysis
JMX console for real-time monitoring (and control) of target
Plug-in framework for additional functionality
Support for integration into Eclipse IDE
16. Value Add
JRockit was originally sold as a “Virtual Machine for Java”
Sun required each Java licensee to have a “value add”
“Superior performance” didn’t go over well...
JRockit’s monitoring and management tools were presented as its
value add to differentiate itself from Sun’s offerings
29. A Combined Legacy
JRockit’s best features ported over to HotSpot
Diagnostic commands (JDK 7)
Compiler control (JDK 9)
Native memory tracking (JDK 7)
Flight Recorder (JDK 7)
Build system (behind the scenes) (JDK 8)
JRockit Mission Control -> Java Mission Control
31. JRockit Runtime Analyzer
Based on experience gained while consulting
“Cast a big net” to avoid multiple support iterations
Most data collection piggy-backed onto internal JVM operations
(low overhead)
Data persisted at zipped XML
34. JRockit Mission Control 4
Post Oracle acquisition (JRockit R28)
Flight Recorder replaces JRockit Runtime Analyzer
XML data -> binary data
Much lower overhead to collect and persist data
39. JDK Mission Control 7
Open source
No longer bundled with JDK (as of JDK 11)
Flight Recorder implementation open sourced (as of JDK 11)
40. Universal Permissive License
Clear patent protection
Clear & simplified relicensing
Reduced overhead in source files
It can be used as a contributor agreement
See FAQ (link at end of slide deck) for details
41. Universal Permissive License
Clear patent protection
Clear & simplified relicensing
Reduced overhead in source files
It can be used as a contributor agreement
See FAQ (link at end of slide deck) for details
42. Oracle Contributor Agreement
Must be signed and sent to Oracle to contribute code to Mission
Control
Same requirement as other OpenJDK projects
Only needs to be done once
43. “...you're doing an awesome job in building a real community and a
*very* open source project.“
- Red Hat Contributor to Marcus Hirt
jmc-dev alias, November 8, 2018
44. Compatibility
Flight Recording format changes between JDK versions
Mission Control has always been backwards compatible with flight
recordings from older HotSpot releases.
JDK 11 requires JMC 7
JMC 7 is currently the only version that supports all HotSpot based
flight recordings
48. GitHub Mirror
Only mainline development branch
Not in full sync at the moment
Recommend using hg until project Skara migration *
* Maybe...
49. A Tale of Two Shells...
Shell 1
cd releng/third-party
mvn p2:site
mvn jetty:run
Shell 2
cd core
mvn install
cd ..
mvn clean package
50. A Tale of Two Shells...
Equinox p2: provisioning platform for OSGi artifacts and meta-data
Shell 1 sets up a p2 repository that hosts dependencies needed by
the build process run in shell 2
51. Cross Compilation?!
Regardless of build platform, binaries for all three target platforms
are generated
Platform-dependent bits are downloaded as dependencies
52. Building
Quick and easy to do
Builds virtually out of the box on most Linux distros
Build platform does not need to match target platform
54. Safepoints
Stop-the-World implementation
Guarantees Java state of thread is known
All threads executing Java code must stop
JNI code can continue
Cooperative suspension
Polling based
By YPLeroux at English Wikipedia, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=17734859
55. Safepoints
Stop-the-World implementation
Guarantees Java state of thread is known
All threads executing Java code must stop
JNI code can continue
Cooperative suspension
Polling based
By YPLeroux at English Wikipedia, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=17734859
56. Safepoint Polling
Interpreter can stop instantly
template dispatch table replaced
“polling” is essentially free
Explicit poll inserted into C1/C2 JIT output
Global safepoint polling page in address space
Poll implemented by attempted read of this address
Safepoint triggered by change in page permissions
57. JIT Safepoint Polling
On return from method call
Backend branches in most loops
Any transition to native code (JVM / JNI)
58. Collatz Conjecture
Simple rules:
If number is even, divide by 2
If number is odd, multiply by 3 and add 1
Conjecture: Start with any positive integer, and you’ll eventually
end up at 1
An open problem in math
63. Let’s test the Collatz Conjecture...
the stupidest way imaginable!
64. Testing the Collatz Conjecture
private static long next(long num) {
return (num%2 == 0) ? num / 2 : 3 * num + 1;
}
65. Testing the Collatz Conjecture
public static void main(String[] args) {
long num;
for (int i=2; i < Integer.MAX_VALUE; i++) {
num = i;
for (int j=0; j < Integer.MAX_VALUE; j++) {
num = next(num);
if (num == 1) break;
}
if (num != 1) {
System.out.println(i + " did not end at 1.");
System.exit(-1);
} else if (i % 1000000 == 0) {
System.out.println("done with " + i);
}
}
}
66. Counted Loop
Loop that increments / decrements an int index
Worst case scenario, we loop 4 billion times (very short)
HotSpot may not bother adding a safepoint pool to the loop
67. Testing the Collatz Conjecture
public static void main(String[] args) {
long num;
for (int i=2; i < Integer.MAX_VALUE; i++) {
num = i;
for (int j=0; j < Integer.MAX_VALUE; j++) {
num = next(num);
if (num == 1) break;
}
if (num != 1) {
System.out.println(i + " did not end at 1.");
System.exit(-1);
} else if (i % 1000000 == 0) {
System.out.println("done with " + i);
}
}
}
68. Testing the Collatz Conjecture
public static void main(String[] args) {
long num;
for (int i=2; i < Integer.MAX_VALUE; i++) {
num = i;
for (int j=0; j < Integer.MAX_VALUE; j++) {
num = next(num);
if (num == 1) break;
}
if (num != 1) {
System.out.println(i + " did not end at 1.");
System.exit(-1);
} else if (i % 1000000 == 0) {
System.out.println("done with " + i);
}
}
}
69. Profiler Types
Sampling Profiler
Process sampled periodically
Invocation count is not exact
Observer effect should be
negligible
Invocation Counter Profiler
Code is instrumented
Exact number of invocations
Observer effect often distorts
results
70. Profiler Types
Sampling Profiler
Process sampled periodically
Invocation count is not exact
Observer effect should be
negligible
Invocation Counter Profiler
Code is instrumented
Exact number of invocations
Observer effect often distorts
results
71. Traditional Sampler
JVMTI / Bytecode instrumentation can only stop thread at a
safepoint poll
What happens between safpoint polls is invisible to the profiler
74. Flight Recording
Can asynchronously stop execution thread at any time
No dependence on safe points for profiling
HotSpot internal API (AsyncGetCallTrace)
Honest Profiler
Oracle Developer Studio
76. What happened?
Safepoints have corresponding metadata
Byte Code Index (bci)
Liveness data (what stack positions point to Java heap)
77. What happened?
By default, metadata is normally only generated for safepoints
DebugNonSafepoints flag forces metadata generation for all code
(obvious performance cost)
80. Takeaways
Open sourcing of JMC has been a great success
JMC 7 and higher are the ideal MC to use regardless of JDK version
Binary builds from Oracle should be available in the near future
JMC is simple to build on your own today
Flight Recording’s AsyncGetCallTrace-based profiling can provide a
level of accuracy unachievable by most other tools.