Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH
|
|
- Elwin Austin
- 5 years ago
- Views:
Transcription
1 Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH
2 Contact Vadym Kazulkin, ip.labs GmbH (Meetup)
3 ip.labs GmbH
4 Agenda Highlights from Java 10 Highlights from Java 11 Highlights from Java 12 Project Amber (Simplifying syntax) Project Valhalla (Value Types and Specialized Generics) Project Metropolis (Polyglot GraalVM) Project Loom (Fibers and Continuations)
5 Highlights from Java 10
6 JEP 286 (Project Amber) Local-Variable Type Inference URL url = new URL( ); URLConnection connection = url.openconnection(); Reader reader = new BufferedReader ( new InputStreamReader(connection.getInputStream())); var url = new URL( ); var connection = url.openconnection(); var reader = new BufferedReader ( new InputStreamReader(connection.getInputStream()));
7 JEP 304 Garbage Collector Interface Goals: Better modularity for HotSpot internal GC code Make it simpler to add a new GC to HotSpot without perturbing the current code base Make it easier to exclude a GC from a JDK build
8 JEP 317 Experimental Java-Based JIT Compiler Graal, a Java-based JIT compiler on the Linux/x64 platform, is the basis of the experimental Ahead-of-Time (AOT) compiler introduced in JDK 9. To Enable: -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
9 Miscellaneous API Changes Better container-awareness Before later versions of Java 8 Runtime.getRuntime().availableProcessors() -> retrieves value from sysconf, means the total number of processors for VM Runtime.getRuntime().maxMemory() -> gets the value for VM overall memory Java 9 is container-aware automatically detecting cpusets JVM considers cgroups memory limits if the following flags are specified: -XX:+UseCGroupMemoryLimitForHeap -XX:+UnlockExperimentalVMOptions Max Heap space will be automatically set (if not overwritten) to the limit specified by the cgroup Sources: Improve docker container detection and resource configuration usage Better containerized JVMs in JDK 10
10 Miscellaneous API Changes Better container-awareness For fixing CPU shares in Java 9 overwrite -XMX for memory -XX:ParallelGCThreads and -XX:ConcGCThreads for CPU -System property java.util.concurrent.forkjoinpool.common.parallelism for ForkJoinPool Better container-awareness in Java 10 (CPU shares support is included) Runtime.getRuntime().availableProcessors() Runtime.getRuntime().maxMemory() Sources: Java SE 9 support for Docker CPU and memory limits Nobody puts Java in a container
11 Miscellaneous API Changes java.util.list/set/map.copyof(collection) java.util.stream.collectors.tounmodifiablelist/set/map(stream) Optional.orElseThrow()
12 Highlights from Java 11
13 JEP 323 (Project Amber) Local-Variable Syntax for Lambda Parameters (x, y) -> x.process(y) // implicitly typed lambda expression (var x, var y) -> x.process(y) // implicit typed lambda expression var var y) -> x.process(y)
14 JEP 321 HTTP Client Goals: Standardize the incubated HTTP Client API introduced in JDK 9, via JEP 110, and updated in JDK 10 HTTP 2.0 Support
15 JEP 332 Transport Layer Security 1.3 Goal: Implement version 1.3 of the Transport Layer Security (TLS) Protocol
16 Miscellaneous API Changes File.isSameContents() in addition to File.isSameFile() New methods and behaviour on the Java String class String#trim method : uses the definition of space as any codepoint that is less than or equal to the space character codepoint (\u0040.) String#lines and String#strip also use this definition of String#trim method String#isBlank : true if the string is empty or contains only white space String#stripLeading, String#stripTrailing : removal of Unicode white space from the beginning/end String#repeat(int numberoftimes) : repeat a string given number if times Sources:
17 Highlights from Java 12
18 JEP 2 Preview Language and VM Features Goals: A preview language or VM feature is a new feature of the Java SE Platform that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use On JDK 12: javac Foo.java // Do not enable any preview features javac --release 12 --enable-preview Foo.java // Enable all preview features of Java SE 12 javac --release 11 --enable-preview Foo.java // DISALLOWED On JDK 13: javac Foo.java // Do not enable any preview features javac --release 13 --enable-preview Foo.java // Enable all preview features of Java SE 13 javac --release 12 --enable-preview Foo.java // DISALLOWED
19 JEP 325 Switch Expressions (Preview) int numberofletters; switch(season) { case FALL: numberofletters=4; break; case WINTER: case SPRING: case SUMMER: numberofletters=6; break; default: throw new IllegalStateException( unknown season +season); }
20 JEP 325 Switch Expressions (Preview) int numberofletters =switch(season) { case FALL -> 4; case WINTER, SPRING, SUMMER -> 6; };
21 JEP 230 Microbenchmark Suite Goal: Add a basic suite of microbenchmarks based on the Java Microbenchmark Harness (JMH) to the JDK source code, and make it easy for developers to run existing microbenchmarks and create new ones.
22 JEP 189 Project Shenandoah: Low-Pause-Time GC (Experimental) Goals : ultra-low pause time garbage collector that reduces GC pause times by performing more garbage collection work concurrently with the running Java program CMS and G1 both perform concurrent marking of live objects. Shenandoah adds concurrent compaction Sources: Talk by Alexey Shipilev: Shenandoah: The Garbage Collector That Could
23 Miscellaneous API Changes Double result = Stream.of(1, 2, 3, 4).collect(teeing( summingdouble(i -> i), counting(), (sum, n) -> sum * n)); System.out.println(result); // 10*4=40
24 Future of Java Beyond Java 12
25 Source: Project Amber Simplifying syntax (continuing)
26 JEP 305 Pattern Matching String formatted = "unknown"; if (obj instanceof Integer) { int i = (Integer) obj; formatted = String.format("int %d", i); } else if (obj instanceof Byte) { byte b = (Byte) obj; formatted = String.format("byte %d", b); } else if (obj instanceof Long) { long l = (Long) obj; formatted = String.format("long %d", l); } else if (obj instanceof Double) { double d = (Double) obj; formatted = String.format( double %f", d); } else if (obj instanceof String) { String s = (String) obj; formatted = String.format("String %s", s); }
27 JEP 305 Pattern Matching String formatted; switch (obj) { case Integer i: formatted = String.format("int %d", i); break; case Byte b: formatted = String.format("byte %d", b); break; case Long l: formatted = String.format("long %d", l); break; case Double d: formatted = String.format( double %f", d); break; case String s: formatted = String.format("String %s", s); break; default: formatted = obj.tostring(); }
28 Records public class Point { private final int x, y; public Point (int x, int y) { this.x=x; this.y=y; } public int hashcode() {... } public boolean equals(object obj) {... } public String tostring() {... } }
29 record Point (int x, int y) { } Records
30 Project Valhalla Value types and specialised generics Source:
31 Project Valhalla Goal: Reboot the layout of data in memory Source: Brian Goetz, Oracle Evolving the Java Language
32 Project Valhalla Motivation: Hardware has changed Multi-core The cost of cache misses has increased Source: Brian Goetz, Oracle Evolving the Java Language
33 Project Valhalla Motivation Source: Latency Numbers Every Programmer Should Know
34 Project Valhalla Motivation Source: Latency Numbers Every Programmer Should Know
35 Project Valhalla Value Object Value Object is an immutable type that is distinguishable only by the state of its properties
36 Project Valhalla Codes like a class, works like a primitive (Brian Goetz) Benefits: Reduced memory usage Reduced indirection Increased locality
37 Project Valhalla Value Types value class Point {long x, y ;}
38 Project Valhalla Value Types Can have method and field implement interfaces use encapsulation be generic Can t be mutated be sub-classed
39 Project Valhalla Generics over Values and Specialized Generics List<Long> points= new ArrayList<Long>(); List<Point> points= new ArrayList<Point>(); class Box<any T> { T value; } class Box<T=Long> class Box<T=Point> Source: John Rose:
40 Project Valhalla Current Status: Released public prototype LW1 VM support for value types (as subtypes of Object) Only language support for value types (no support for generics over values and specialized generics ) No support for migrating existing classes to value types yet Source: Brian Goetz, Oracle Evolving the Java Language
41 Project Metropolis Polyglot GraalVM for Java 8 (current version 1.0-RC13 as of ) Source:
42 Project Metropolis Goals: High performance for all languages Zero overhead interoperability between languages Language-level virtualization level for shared tooling Source: Oleg Selajev : Run Code in Any Language Anywhere with GraalVM
43 GraalVM Architecture Sources: Practical Partial Evaluation for High-Performance Dynamic Language Runtimes The LLVM Compiler Infrastructure
44 Project Sulong Source: Thomas Würthinger, Oracle : One VM to Rule Them All
45 GraalVM Architecture Sources: Practical Partial Evaluation for High-Performance Dynamic Language Runtimes The LLVM Compiler Infrastructure
46 SubstrateVM Source: Oleg Šelajev, Thomas Wuerthinger, Oracle: Deep dive into using GraalVM for Java and JavaScript
47 GraalVM and SubstrateVM Source: Oleg Selajev, Oracle : Run Code in Any Language Anywhere with GraalVM
48 Difference Between Substrate VM & JVM Models Source: Kevin Menard : Improving TruffleRuby s Startup Time with the SubstrateVM
49 GraalVM on SubstrateVM A game changer for Java & Serverless? Cold Start : Source: Ajay Nair Become a Serverless Black Belt
50 AWS Lambda cold start time by supported language Source: Yan Cui:
51 GraalVM on SubstrateVM A game changer for Java & Serverless? Java Function compiled into a native executable using GraalVM on SubstrateVM reduces cold start times memory footprint by order of magnitude compared to running on JVM.
52 Source: Project Loom Fibers and Continuations
53 Project Loom Motivation: Developers currently have 2 choices use blocking/synchronous API, which is simple, but less scalable (number of threads, that OS supports is far less that open and concurrent connections required) asynchronous API (Spring Project Reactor, RXJava 2), which is scalable, but complex, harder to debug and profile and limited (no asynchronous JDBC standard in this area) Source: Alan Bateman, Oracle Project Loom: Fibers and Continuations for Java
54 Project Loom Goals: explore and incubate Java VM features and APIs built on top of them for the implementation of lightweight user-mode threads (fibers), delimited continuations
55 Project Loom Continuation Continuation is a program object, representing a computation that may be suspended and resumed
56 Continuation package java.lang; public class Continuation { public Continuation (ContinuationScope scope, Runnable target) public final void run() public static void yield (ContinuationScope scope) } public boolean isdone()
57 Project Loom Continuations example () { var scope = new ContinuationScope( Example_Scope ); var continuation = new Continuation (scope, () -> { out.print( 1 ); Continuation.yield(scope); out.print( 2 ); Continuation.yield(scope); out.print( 3 ); Continuation.yield(scope); } }); while (! continuation.isdone()) { out.print( run.. ); continuation.run(); } Output: run.. 1 run.. 2 run.. 3
58 Project Loom Fibers Fibre is a lightweight thread scheduled not by the OS, but by the Java Runtime with low memory footprint and low taskswitching cost
59 Project Loom Fibers Strand (abstract thread) Fiber Thread Source: Talk Project Loom: Fibers and Continuations for the Java Virtual Machine by Ron Pressler
60 Project Loom Continuations Fiber = Continuation + Schedular
61 Project Loom Fibers java.lang.fibre currently supports: scheduling parking/unparking waiting for a fibre to terminate java.util.concurrent can park/unpark fibres Socket and Pipe APIs park fibers rather than block threads in syscalls Source: Alan Bateman, Oracle Project Loom: Fibers and Continuations for Java
62 Project Loom Current Status: Implemented initial prototype with Continuation and Fiber support Current prototype of Continuations and Fibers can run existing code (with some limitations) Current focus on Performance improvement Stable Fiber API Debugger support Source: Alan Bateman, Oracle Project Loom: Fibers and Continuations for Java
63 Project Loom Open Questions: Should the existing Thread API be completely re-examined? Can all existing code be run on top of Fibers? Source: Alan Bateman, Oracle Project Loom: Fibers and Continuations for Java
64 is still an interesting and great programming language
65 Questions?
66 Thank You!
JDK 9/10/11 and Garbage Collection
JDK 9/10/11 and Garbage Collection Thomas Schatzl Senior Member of Technical Staf Oracle JVM Team May, 2018 thomas.schatzl@oracle.com Copyright 2017, Oracle and/or its afliates. All rights reserved. 1
More informationProject Loom Ron Pressler, Alan Bateman June 2018
Project Loom Ron Pressler, Alan Bateman June 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Safe Harbor Statement The following is intended to outline our general product direction.
More informationAlan Bateman Java Platform Group, Oracle November Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1
Alan Bateman Java Platform Group, Oracle November 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Project Loom Continuations Fibers Tail-calls Copyright 2018, Oracle and/or its
More informationJDK 9, 10, 11 and Beyond: Delivering New Features in the JDK
JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems azul.com @speakjava 1 JDK 9: Big And Small Changes 2 Java Platform Module
More informationNew Java performance developments: compilation and garbage collection
New Java performance developments: compilation and garbage collection Jeroen Borgers @jborgers #jfall17 Part 1: New in Java compilation Part 2: New in Java garbage collection 2 Part 1 New in Java compilation
More informationFuture of Java. Post-JDK 9 Candidate Features. Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017
Future of Java Post-JDK 9 Candidate Features Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017 Safe Harbor Statement The following is intended to outline our general product
More informationTruffle A language implementation framework
Truffle A language implementation framework Boris Spasojević Senior Researcher VM Research Group, Oracle Labs Slides based on previous talks given by Christian Wimmer, Christian Humer and Matthias Grimmer.
More informationJava in a World of Containers
Java in a World of Containers mikael.vidstedt@oracle.com Not-coder, JVM @MikaelVidstedt matthew.gilliard@oracle.com Coder, not-jvm @MaximumGilliard Copyright 2017, Oracle and/or its affiliates. All rights
More informationCopyright 2014 Oracle and/or its affiliates. All rights reserved.
Copyright 2014 Oracle and/or its affiliates. All rights reserved. On the Quest Towards Fastest (Java) Virtual Machine on the Planet! @JaroslavTulach Oracle Labs Copyright 2015 Oracle and/or its affiliates.
More informationJava Performance: The Definitive Guide
Java Performance: The Definitive Guide Scott Oaks Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface ix 1. Introduction 1 A Brief Outline 2 Platforms and Conventions 2 JVM
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationScaling the OpenJDK. Claes Redestad Java SE Performance Team Oracle. Copyright 2017, Oracle and/or its afliates. All rights reserved.
Scaling the OpenJDK Claes Redestad Java SE Performance Team Oracle Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only,
More informationJAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder
JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance
More informationFrankfurt 26 & 27 September 2018
Frankfurt 26 & 27 September 2018 Production-Ready Serverless Java Applications in 3 Weeks with S3, Lambda, API Gateway, SNS, DynamoDB and Aurora Serverless by Elmar Warken and Vadym Kazulkin, ip.labs GmbH
More informationCON Java in a World of Containers
CON4429 - Java in a World of Containers paul.sandoz@oracle.com @PaulSandoz mikael.vidstedt@oracle.com Director, Java Virtual Machine @MikaelVidstedt Copyright 2017, Oracle and/or its affiliates. All rights
More informationThe Z Garbage Collector An Introduction
The Z Garbage Collector An Introduction Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team FOSDEM 2018 Safe Harbor Statement The following is intended to outline our general product direction.
More informationJava SE 8 Programming
Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming
More informationShaping the future of Java, Faster
Shaping the future of Java, Faster Georges Saab Vice President, Java Platform Group Oracle, Corp Twitter: @gsaab Safe Harbor Statement The following is intended to outline our general product direction.
More informationDRAFT. String Density: Performance and Footprint. Xueming Shen. Aleksey Shipilev Oracle Brent Christian.
String Density: Performance and Footprint Aleksey Shipilev Oracle aleksey.shipilev@oracle.com Brent Christian Oracle brent.christian@oracle.com December 2, 214 Xueming Shen Oracle xueming.shen@oracle.com
More informationJVM Memory Model and GC
JVM Memory Model and GC Developer Community Support Fairoz Matte Principle Member Of Technical Staff Java Platform Sustaining Engineering, Copyright 2015, Oracle and/or its affiliates. All rights reserved.
More informationRefactoring to Java X
Refactoring to Java X Refactoring to Java X Reinier Zwitserloot Roel Spilker The boilerplate busters Java X The new language features Feature I Feature II Feature III Feature IV Java X The new language
More informationThe Z Garbage Collector Low Latency GC for OpenJDK
The Z Garbage Collector Low Latency GC for OpenJDK Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team Jfokus VM Tech Summit 2018 Safe Harbor Statement The following is intended to outline our
More informationJava 11 and MAKING ECLIPSE JDT FUTURE READY MANOJ PALAT IBM
Java 11 and Beyond MAKING ECLIPSE JDT FUTURE READY MANOJ PALAT IBM @manojnp Java Releases Road Traveled++ Version 1.0 1.1,1.2,1.3,1.4,1.5,1.6 1.7 1.8 9 10 11 12 13 Release Date 1996 1997, 1998, 2000, 2002,
More informationCore Java SYLLABUS COVERAGE SYLLABUS IN DETAILS
Core Java SYLLABUS COVERAGE Introduction. OOPS Package Exception Handling. Multithreading Applet, AWT, Event Handling Using NetBean, Ecllipse. Input Output Streams, Serialization Networking Collection
More informationA JVM Does What? Eva Andreasson Product Manager, Azul Systems
A JVM Does What? Eva Andreasson Product Manager, Azul Systems Presenter Eva Andreasson Innovator & Problem solver Implemented the Deterministic GC of JRockit Real Time Awarded patents on GC heuristics
More informationRunning class Timing on Java HotSpot VM, 1
Compiler construction 2009 Lecture 3. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int s = r + 5; return
More informationJava in a World of Containers
Java in a World of Containers mikael.vidstedt@oracle.com Director, JVM @MikaelVidstedt Copyright 2018, Oracle and/or its affiliates. All rights reserved. 1 Safe Harbor Statement The following is intended
More informationJava SE 8 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features
More informationJava On Steroids: Sun s High-Performance Java Implementation. History
Java On Steroids: Sun s High-Performance Java Implementation Urs Hölzle Lars Bak Steffen Grarup Robert Griesemer Srdjan Mitrovic Sun Microsystems History First Java implementations: interpreters compact
More informationThe Z Garbage Collector Scalable Low-Latency GC in JDK 11
The Z Garbage Collector Scalable Low-Latency GC in JDK 11 Per Lidén (@perliden) Consulting Member of Technical Staff Java Platform Group, Oracle October 24, 2018 Safe Harbor Statement The following is
More informationNotes of the course - Advanced Programming. Barbara Russo
Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................
More information<Insert Picture Here> Maxine: A JVM Written in Java
Maxine: A JVM Written in Java Michael Haupt Oracle Labs Potsdam, Germany The following is intended to outline our general product direction. It is intended for information purposes
More informationWhat a Year! Java 10 and 10 Big Java Milestones
What a Year! Java 10 and 10 Big Java Milestones Java has made tremendous strides in the past 12 months, with exciting new features and capabilities for developers of all kinds. Table of Contents INTRODUCTION
More information<Insert Picture Here> Symmetric multilanguage VM architecture: Running Java and JavaScript in Shared Environment on a Mobile Phone
Symmetric multilanguage VM architecture: Running Java and JavaScript in Shared Environment on a Mobile Phone Oleg Pliss Pavel Petroshenko Agenda Introduction to Monty JVM Motivation
More informationJava: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationSelected Java Topics
Selected Java Topics Introduction Basic Types, Objects and Pointers Modifiers Abstract Classes and Interfaces Exceptions and Runtime Exceptions Static Variables and Static Methods Type Safe Constants Swings
More informationScriptable Markdown pretty-printing with GraalVM
Scriptable Markdown pretty-printing with GraalVM Pascal Maissen pascal.maissen@unifr.ch 20.11.2018 Seminar Software Composition, University of Bern Motivation Implement a pretty printer for markdown in
More informationJava SE 8 Programming
Java SE 8 Programming Training Calendar Date Training Time Location 16 September 2019 5 Days Bilginç IT Academy 28 October 2019 5 Days Bilginç IT Academy Training Details Training Time : 5 Days Capacity
More informationOS-caused Long JVM Pauses - Deep Dive and Solutions
OS-caused Long JVM Pauses - Deep Dive and Solutions Zhenyun Zhuang LinkedIn Corp., Mountain View, California, USA https://www.linkedin.com/in/zhenyun Zhenyun@gmail.com 2016-4-21 Outline q Introduction
More informationProgramming Language Basics
Programming Language Basics Lecture Outline & Notes Overview 1. History & Background 2. Basic Program structure a. How an operating system runs a program i. Machine code ii. OS- specific commands to setup
More informationCompiler construction 2009
Compiler construction 2009 Lecture 3 JVM and optimization. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationJava Programming Course Overview. Duration: 35 hours. Price: $900
978.256.9077 admissions@brightstarinstitute.com Java Programming Duration: 35 hours Price: $900 Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented
More informationDesigning experiments Performing experiments in Java Intel s Manycore Testing Lab
Designing experiments Performing experiments in Java Intel s Manycore Testing Lab High quality results that capture, e.g., How an algorithm scales Which of several algorithms performs best Pretty graphs
More informationPause-Less GC for Improving Java Responsiveness. Charlie Gracie IBM Senior Software charliegracie
Pause-Less GC for Improving Java Responsiveness Charlie Gracie IBM Senior Software Developer charlie_gracie@ca.ibm.com @crgracie charliegracie 1 Important Disclaimers THE INFORMATION CONTAINED IN THIS
More informationSeptember 15th, Finagle + Java. A love story (
September 15th, 2016 Finagle + Java A love story ( ) @mnnakamura hi, I m Moses Nakamura Twitter lives on the JVM When Twitter realized we couldn t stay on a Rails monolith and continue to scale at the
More informationCapriccio : Scalable Threads for Internet Services
Capriccio : Scalable Threads for Internet Services - Ron von Behren &et al - University of California, Berkeley. Presented By: Rajesh Subbiah Background Each incoming request is dispatched to a separate
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationParley: Federated Virtual Machines
1 IBM Research Parley: Federated Virtual Machines Perry Cheng, Dave Grove, Martin Hirzel, Rob O Callahan and Nikhil Swamy VEE Workshop September 2004 2002 IBM Corporation What is Parley? Motivation Virtual
More informationMODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups
MODULE 1 JAVA PLATFORMS Identifying Java Technology Product Groups Java SE Platform Versions Year Developer Version (JDK) Platform 1996 1.0 1 1997 1.1 1 1998 1.2 2 2000 1.3 2 2002 1.4 2 2004 1.5 5 2006
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationCS 351 Design of Large Programs Threads and Concurrency
CS 351 Design of Large Programs Threads and Concurrency Brooke Chenoweth University of New Mexico Spring 2018 Concurrency in Java Java has basic concurrency support built into the language. Also has high-level
More informationHigh Performance Managed Languages. Martin Thompson
High Performance Managed Languages Martin Thompson - @mjpt777 Really, what is your preferred platform for building HFT applications? Why do you build low-latency applications on a GC ed platform? Agenda
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management
More informationExperimental New Directions for JavaScript
Experimental New Directions for JavaScript Andreas Rossberg, V8/Google Motivation Broad need for (more) scalable JavaScript Usability, esp. maintainability Performance, esp. predictability ES6 opens up
More informationCompiler Design Spring 2018
Compiler Design Spring 2018 Thomas R. Gross Computer Science Department ETH Zurich, Switzerland 1 Logistics Lecture Tuesdays: 10:15 11:55 Thursdays: 10:15 -- 11:55 In ETF E1 Recitation Announced later
More informationJava Memory Model for practitioners. by Vadym Kazulkin and Rodion Alukhanov, ip.labs GmbH
Java Memory Model for practitioners by Vadym Kazulkin and Rodion Alukhanov, ip.labs GmbH Topics Hardware Memory Model Java Memory Model Practical examples related to Java Memory Model JcStress Tool The
More informationAhead of Time (AOT) Compilation
Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement
More informationCertified Core Java Developer VS-1036
VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure
More informationOptimising Multicore JVMs. Khaled Alnowaiser
Optimising Multicore JVMs Khaled Alnowaiser Outline JVM structure and overhead analysis Multithreaded JVM services JVM on multicore An observational study Potential JVM optimisations Basic JVM Services
More informationNew Features Overview
Features pf JDK 7 New Features Overview Full List: http://docs.oracle.com/javase/7/docs/webnotes/adoptionguide/index.html JSR 334: Small language enhancements (Project Coin) Concurrency and collections
More informationChapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin
More informationSix New Trends in the JVM
Six New Trends in the JVM John Rose, JVM Architect Brussels FOSDEM, February 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved. 1 The following is intended to outline our general product
More information<Insert Picture Here>
1 2010-0237 The Maxine Inspector: A Specialized Tool for VM Development, Santa Clara, CA Michael L. Van De Vanter Researcher, Oracle Sun Labs The Maxine Project at Oracle Sun Labs:
More informationSubstrate VM. Copyright 2017, Oracle and/or its affiliates. All rights reserved.
Substrate VM 1 Safe Harbor Statement The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for information purposes only, and may not be incorporated
More informationCore JAVA Training Syllabus FEE: RS. 8000/-
About JAVA Java is a high-level programming language, developed by James Gosling at Sun Microsystems as a core component of the Java platform. Java follows the "write once, run anywhere" concept, as it
More informationHistory Introduction to Java Characteristics of Java Data types
Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems
More informationThe Sun s Java Certification and its Possible Role in the Joint Teaching Material
The Sun s Java Certification and its Possible Role in the Joint Teaching Material Nataša Ibrajter Faculty of Science Department of Mathematics and Informatics Novi Sad 1 Contents Kinds of Sun Certified
More informationJDK 9, 变化与未来. Xuelei Fan
2016-4-21 JDK 9, 变化与未来 Xuelei Fan Java 20-Year Topics JDK 9 OpenJDK Community JDK 9 Schedule 2016/05/26 Feature Complete 2016/08/11 All Tests Run 2016/09/01 Rampdown Start 2016/10/20 Zero Bug Bounce 2016/12/01
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Truffle: A Self-Optimizing Runtime System Christian Wimmer, Thomas Würthinger Oracle Labs Write Your Own Language Current situation How it should be Prototype a new language Parser and language work
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationApache Lucene and Java 9+ Opportunities and Challenges for Apache Solr and Elasticsearch
Apache Lucene and Java 9+ Opportunities and Challenges for Apache Solr and Elasticsearch Uwe Schindler SD DataSolutions GmbH / Apache Software Foundation thetaph1 https://www.thetaphi.de My Background
More informationThe G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017
The G1 GC in JDK 9 Erik Duveblad Senior Member of Technical Staf racle JVM GC Team ctober, 2017 Copyright 2017, racle and/or its affiliates. All rights reserved. 3 Safe Harbor Statement The following is
More informationDOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS
Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully
More informationC#: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationA- Core Java Audience Prerequisites Approach Objectives 1. Introduction
OGIES 6/7 A- Core Java The Core Java segment deals with the basics of Java. It is designed keeping in mind the basics of Java Programming Language that will help new students to understand the Java language,
More informationRun-Time Environments/Garbage Collection
Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs
More informationOPERATING SYSTEM. Chapter 4: Threads
OPERATING SYSTEM Chapter 4: Threads Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples Objectives To
More informationServlet Performance and Apache JServ
Servlet Performance and Apache JServ ApacheCon 1998 By Stefano Mazzocchi and Pierpaolo Fumagalli Index 1 Performance Definition... 2 1.1 Absolute performance...2 1.2 Perceived performance...2 2 Dynamic
More informationHierarchical PLABs, CLABs, TLABs in Hotspot
Hierarchical s, CLABs, s in Hotspot Christoph M. Kirsch ck@cs.uni-salzburg.at Hannes Payer hpayer@cs.uni-salzburg.at Harald Röck hroeck@cs.uni-salzburg.at Abstract Thread-local allocation buffers (s) are
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More informationCOURSE DETAILS: CORE AND ADVANCE JAVA Core Java
COURSE DETAILS: CORE AND ADVANCE JAVA Core Java 1. Object Oriented Concept Object Oriented Programming & its Concepts Classes and Objects Aggregation and Composition Static and Dynamic Binding Abstract
More informationII. Compiling and launching from Command-Line, IDE A simple JAVA program
Contents Topic 01 - Java Fundamentals I. Introducing JAVA II. Compiling and launching from Command-Line, IDE A simple JAVA program III. How does JAVA work IV. Review - Programming Style, Documentation,
More informationAdvanced programming for Java platform. Introduction
Advanced programming for Java platform Introduction About course Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/teaching/vsjava/ continuation of "Java (NPRG013)" basic knowledge of Java
More informationJVM Performance Study Comparing Java HotSpot to Azul Zing Using Red Hat JBoss Data Grid
JVM Performance Study Comparing Java HotSpot to Azul Zing Using Red Hat JBoss Data Grid Legal Notices JBoss, Red Hat and their respective logos are trademarks or registered trademarks of Red Hat, Inc.
More informationCrash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++
Crash Course in Java Netprog: Java Intro 1 Why Java? Network Programming in Java is very different than in C/C++ much more language support error handling no pointers! (garbage collection) Threads are
More informationIndex COPYRIGHTED MATERIAL
Index COPYRIGHTED MATERIAL Note to the Reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations. A abstract classes
More informationJava Without the Jitter
TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency
More informationPortable Resource Control in Java The J-SEAL2 Approach
Portable Resource Control in Java The J-SEAL2 Approach Walter Binder w.binder@coco.co.at CoCo Software Engineering GmbH Austria Jarle Hulaas Jarle.Hulaas@cui.unige.ch Alex Villazón Alex.Villazon@cui.unige.ch
More informationEfficient Java (with Stratosphere) Arvid Heise, Large Scale Duplicate Detection
Efficient Java (with Stratosphere) Arvid Heise, Large Scale Duplicate Detection Agenda 2 Bottlenecks Mutable vs. Immutable Caching/Pooling Strings Primitives Final Classloaders Exception Handling Concurrency
More informationQuick start. Robert Bachmann & Dominik Dorn. JSUG Meeting #63
1.. Java 8 Quick start Robert Bachmann & Dominik Dorn JSUG Meeting #63 Outline: What s new in Java 8 2 Interface additions and lambda syntax (r) Library additions (r) Nashorn (d) Type annotations (d) VM
More informationCMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are "built" on top of that.
CMSC131 Inheritance Object When we talked about Object, I mentioned that all Java classes are "built" on top of that. This came up when talking about the Java standard equals operator: boolean equals(object
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
More informationJava Performance Tuning
443 North Clark St, Suite 350 Chicago, IL 60654 Phone: (312) 229-1727 Java Performance Tuning This white paper presents the basics of Java Performance Tuning and its preferred values for large deployments
More informationJava SE 8 Programmer I and II Syballus( Paper codes : 1z0-808 & 1z0-809)
Page1 Java SE 8 Programmer 1, also called OCJA 8.0 Exam Number: 1Z0-808 Associated Certifications: Oracle Certified Associate, Java SE 8 Programmer Java Basics Highlights of the Certifications Define the
More informationPage 1
Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory
More informationApplication Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started
Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features
More information