The Java Hotspot VM Under the Hood

Total Page:16

File Type:pdf, Size:1020Kb

The Java Hotspot VM Under the Hood The Java HotSpot VM Under the Hood Tobias Hartmann Compiler Group – Java HotSpot Virtual Machine Oracle Corporation May 2018 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | About me • Software engineer in the HotSpot JVM Compiler Team at Oracle – Based in Baden, Switzerland • Master’s degree in Computer Science from ETH Zurich • Worked on various compiler-related projects – Currently working on future Value Type support for Java Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 3 Outline • Intro: Why virtual machines? • Part 1: The Java HotSpot VM – JIT compilation in HotSpot – Tiered Compilation • Part 2: What's new in Java – Segmented Code Cache – Compact Strings – Ahead-of-time Compilation – Value Types Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 4 A typical computing platform User Applications Application Software Java SE Java EE Java Virtual Machine System Software Operating system Hardware Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 5 A typical computing platform User Applications Application Software Java SE Java EE Java Virtual Machine System Software Operating system Hardware Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 6 A typical computing platform User Applications Application Software Java SE Java EE Java Virtual Machine System Software Operating system Hardware Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 7 Programming language implementation Programming language C Compiler CompilerCompiler Standard libraries StandardCompiler libraries Language StandardStandard libraries libraries implementation Debugger DebuggerDebugger Memory management MemoryDebugger management MemoryMemory management management Operating Windows Linux system LinuxSolaris Hardware Intel x86 Intel x86 ARMSPARC Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 8 (Language) virtual machine Programming language Java JavaScript Scala Python Virtual machine HotSpot VM Operating Windows Linux Mac OS X Solaris system Hardware Intel x86 PPC ARM SPARC Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 9 Outline • Intro: Why virtual machines? • Part 1: The Java HotSpot VM – JIT compilation in HotSpot – Tiered Compilation • Part 2: What's new in Java – Segmented Code Cache – Compact Strings – Ahead-of-time Compilation – Value Types Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 10 The JVM: An application developer’s view Java source code Bytecodes HotSpot int i = 0; compile 0: iconst_0 execute Java VM do { 1: istore_1 i++; 2: iinc } while (i < f()); 5: iload_1 6: invokestatic f 9: if_icmplt 2 12: return • Ahead-of-time • Using javac • Instructions for an abstract machine • Stack-based machine (no registers) Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 11 The JVM: A VM engineer’s view Bytecodes HotSpot Java VM 0: iconst_0 1: istore_1 compile Compilation produce Compiled method Garbage 2: iinc system collector 5: iload_1 6: invokestatic f 9: if_icmplt 2 C1 Machine code 12: return C2 Debug info manage Object maps execute access Heap Interpreter access Stack Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 12 Outline • Intro: Why virtual machines? • Part 1: The Java HotSpot VM – JIT compilation in HotSpot – Tiered Compilation • Part 2: What's new in Java – Segmented Code Cache – Compact Strings – Ahead-of-time Compilation – Value Types Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 13 Interpretation vs. compilation in HotSpot • Template-based interpreter – Generated at VM startup (before program execution) – Maps a well-defined machine code sequence to every bytecode instruction Bytecodes 0: iconst_0 Machine code 1: istore_1 mov -0x8(%r14), %eax Load local variable 1 2: iinc movzbl 0x1(%r13), %ebx 5: iload_1 inc %r13 Dispatch next instruction 6: invokestatic f mov $0xff40,%r10 9: if_icmplt 2 jpmq *(%r10, %rbx, 8) 12: return • Compilation system – Speedup relative to interpretation: ~100X – Two just-in-time compilers (C1, C2) – Aggressive optimistic optimizations Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 14 Ahead-of-time vs. just-in-time compilation • AOT: Before program execution • JIT: During program execution – Tradeoff: Resource usage vs. performance of generated code Performance Bad performance Good performance Bad performance due to interpretation due to good selection of due to compilation compiled methods and overhead applied optimizations Amount of compilation Interpretation Compile everything Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 15 JIT compilation in HotSpot • Resource usage vs. performance – Getting to the “sweet spot” 1. Selecting methods to compile 2. Selecting compiler optimizations Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 16 1. Selecting methods to compile • Hot methods (frequently executed methods) • Profile method execution – # of method invocations, # of backedges • A method’s lifetime in the VM Compiler’s optimistic assumptions proven wrong Deoptimization # method invocations > THRESHOLD1 # of backedges > THRESHOLD2 Interpreter Compiler (C1 or C2) Code cache Gather profiling information Compile bytecode to native code Store machine code Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 17 Example optimization: Hot path compilation Control flow graph Generated code S1; guard(x > 3) S2; S1; S ; S3; 2 Deoptimize if (x > 3) S3; S4; S8; 10’000 0 S ; True False 9 S4; S5; S6; S7; S8; S9; Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 18 Example optimization: Virtual call inlining Class hierarchy Method to be compiled class A { void foo() { void bar() { A a = create(); // return A or B Compiler: S1; loaded a.bar(); } } Inline call? } Yes. class B extends A { void bar() { S2; not loaded } } Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 19 Example optimization: Virtual call inlining Class hierarchy Method to be compiled class A { void foo() { void bar() { A a = create(); // return A or B Compiler: S1; loaded S1; } } Inline call? } Yes. class B extends A { • Benefits of inlining void bar() { – Virtual call avoided S2; not loaded } – Code locality } • Optimistic assumption: only A is loaded – Note dependence on class hierarchy – Deoptimize if hierarchy changes Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 20 Example optimization: Virtual call inlining Class hierarchy Method to be compiled class A { void foo() { void bar() { A a = create(); // return A or B Compiler: S1; loaded a.bar(); } } Inline call? } No. class B extends A { void bar() { S2; loaded } } Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 21 Deoptimization • Compiler’s optimistic assumption proven wrong – Assumptions about class hierarchy – Profile information does not match method behavior • Switch execution from compiled code to interpretation – Reconstruct state of the interpreter at runtime – Complex implementation • Compiled code – Possibly thrown away – Possibly reprofiled and recompiled Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 22 Performance effect of deoptimization • Follow the variation of a method’s performance Interpreted Compiled Interpreted Compiled Performance Time VM Startup Compilation Deoptimization Compilation Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 23 JIT compilation in HotSpot • Resource usage vs. performance – Getting to the “sweet spot” 1. Selecting methods to compile 2. Selecting compiler optimizations Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 24 2. Selecting compiler optimizations • C1 compiler – Limited set of optimizations Client VM – Fast compilation – Small footprint Tiered Compilation • C2 compiler (enabled since JDK 8) – Aggressive optimistic optimizations Server VM – High resource demands – High-performance code • Graal – Part of HotSpot for AOT since JDK 9 – Available as experimental C2 replacement in JDK 11 Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 25 Outline • Why virtual machines? • Part 1: The Java HotSpot VM – JIT compilation in HotSpot – Tiered Compilation • Part 2: What's new in Java – Segmented Code – Compact Strings – Ahead-of-Time Compilation – Value Types Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 26 Tiered Compilation • Introduced in JDK 7, enabled by default in JDK 8 • Combines the benefits of – Interpreter: Fast startup – C1: Fast compilation – C2: High peak performance • Within the sweet spot – Faster startup – More profile information Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 27 Benefits of Tiered Compilation Client VM (C1 only) warm-up time Performance Interpreted C1-compiled Time VM Startup Compilation Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 28 Benefits of Tiered Compilation
Recommended publications
  • Optimizing Oracle Database on Oracle Linux with Flash
    An Oracle White Paper September 2014 Optimizing Oracle Database Performance on Oracle Linux with Flash Optimizing Oracle Database Performance on Oracle Linux with Flash Introduction ....................................................................................... 1 Advantages of Using Flash-based Caching / Storage with an Oracle Database and Oracle Linux .................................................... 2 Overview of Oracle’s Sun Flash Accelerator PCIe Card .................... 2 Configuring Oracle Linux and the Oracle Database for Optimum I/O Performance ................................................................................ 3 Configure Oracle’s Sun Flash Accelerator PCIe Card as a File System ................................................................................. 3 Configure Oracle ASM Using Multiple Oracle’s Sun Flash Accelerator PCIe Cards for Mirroring or for Increased Smart Flash Cache Capacity ............................................................. 5 Configuring the Oracle Database to Use Database Smart Flash Cache .................................................................................. 5 Oracle 11g Release 2 Database Smart Flash Cache ..................... 6 Database Settings ......................................................................... 9 Benchmark Results ........................................................................... 9 Baseline Results .......................................................................... 10 Results with Database Smart Flash Cache Enabled
    [Show full text]
  • Java (Software Platform) from Wikipedia, the Free Encyclopedia Not to Be Confused with Javascript
    Java (software platform) From Wikipedia, the free encyclopedia Not to be confused with JavaScript. This article may require copy editing for grammar, style, cohesion, tone , or spelling. You can assist by editing it. (February 2016) Java (software platform) Dukesource125.gif The Java technology logo Original author(s) James Gosling, Sun Microsystems Developer(s) Oracle Corporation Initial release 23 January 1996; 20 years ago[1][2] Stable release 8 Update 73 (1.8.0_73) (February 5, 2016; 34 days ago) [±][3] Preview release 9 Build b90 (November 2, 2015; 4 months ago) [±][4] Written in Java, C++[5] Operating system Windows, Solaris, Linux, OS X[6] Platform Cross-platform Available in 30+ languages List of languages [show] Type Software platform License Freeware, mostly open-source,[8] with a few proprietary[9] compo nents[10] Website www.java.com Java is a set of computer software and specifications developed by Sun Microsyst ems, later acquired by Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment . Java is used in a wide variety of computing platforms from embedded devices an d mobile phones to enterprise servers and supercomputers. While less common, Jav a applets run in secure, sandboxed environments to provide many features of nati ve applications and can be embedded in HTML pages. Writing in the Java programming language is the primary way to produce code that will be deployed as byte code in a Java Virtual Machine (JVM); byte code compil ers are also available for other languages, including Ada, JavaScript, Python, a nd Ruby.
    [Show full text]
  • Why Oracle Database Runs Best on Oracle Linux
    Why Oracle Database Runs Best on Oracle Linux White Paper May 6, 2020 | Version 2.2 Copyright © 2020, Oracle and/or its affiliates 1 WHITE PAPER | Why Oracle Database Runs Best on Oracle Linux | Version 2.2 Copyright © 2020, Oracle and/or its affiliates PURPOSE STATEMENT This document describes why the Oracle Linux operating environment is the best operating environment for running the Oracle Database. DISCLAIMER This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle software license and service agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates. This document is for informational purposes only and is intended solely to assist you in planning for the implementation and upgrade of the product features described. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle. Due to the nature of the product architecture, it may not be possible to safely include all features described in this document without risking significant destabilization of the code.
    [Show full text]
  • Maximizing Applications Performance with Graalvm
    Maximizing Applications Performance with GraalVM Alina Yurenko Developer Advocate for GraalVM @alina_yurenko February 05, 2020 Safe harbor statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. GraalVM Native Image technology (including Substrate VM) is Early Adopter technology. It is available only under an early adopter license and remains subject to potentially significant further changes, compatibility testing and certification. 3 Run programs faster anywhere 1. High performance for abstractions of any language 2. Low-footprint AOT mode for JVM-based languages 3. Convenient language interoperability and polyglot tooling 4. Simple embeddability in native and managed programs database standalone 6 7 Production-ready!! get both: graalvm.org 10 Open Source LOC actively maintained for GraalVM Total: 3,640,000 lines of code 11 Performance Metrics 12 How to measure performance? • Throughput • Latency • Capacity • Utilization • Efficiency • Scalability • Degradation https://learning.oreilly.com/library/view/optimizing-java - by Chris Newland, James Gough, Benjamin J Evans Optimizing performance with GraalVM 15 JIT AOT
    [Show full text]
  • Direct Heap Snapshotting in the Java Hotspot VM: a Prototype
    DEGREE PROJECT IN COMPUTER SCIENCE AND ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2020 Direct Heap Snapshotting in the Java HotSpot VM: a Prototype LUDVIG JANIUK KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Direct Heap Snapshotting in the Java HotSpot VM: a Prototype Ludvig Janiuk 2020 Master's Thesis in Theoretical Computer Science Supervisor: Philipp Haller Examiner: Roberto Guanciale Swedish title: Direkt Heap-Snapshottande i Java HotSpot's VM: en Prototyp School of Electrical Engineering and Computer Science Abstract The Java programming language is widely used across the world, powering a diverse range of technologies. However, the Java Virtual Machine suffers from long startup time and a large memory footprint. This becomes a problem when Java is used in short-lived programs such as microservices, in which the long initialization time might dominate the program runtime and even violate service level agreements. Checkpoint/Restore (C/R) is a technique which has reduced startup times for other applications, as well as reduced memory footprint. This thesis presents a prototype of a variant of C/R on the OpenJDK JVM, which saves a snapshot of the Java heap at some time during initialization. The primary goal was to see whether this was possible. The implementation suc- cessfully skips parts of initialization and the resulting program still seems to execute correctly under unit tests and test programs. It also reduces runtime by a minuscule amount under certain conditions. The portion of initialization being snapshotted would need to be further extended in order to result in larger time savings, which is a promising avenue for future work.
    [Show full text]
  • Berkeley DB: Performance Metrics and Benchmarks
    Oracle Berkeley DB: Performance Metrics and Benchmarks ORACLE WHITE P A P E R | JANUARY 2017 Introduction This white paper presents performance measurements for Oracle Berkeley DB under various conditions on several major operating systems and platforms. Performance estimates presented here are intended to help you understand what to expect from Berkeley DB in some common configurations on commodity hardware running widely used operating systems. Your application performance depends on your data, data access patterns, cache size, other configuration parameters, operating system and hardware. Benchmarks are almost never representative of the performance of a particular application. They do, however, provide guidelines and help to set basic operational expectations. Oracle Berkeley DB is a database engine designed for any application requiring efficient and robust embedded data storage. Berkeley DB is a complete data management library, including support for concurrent access, ACID transactions and recovery, and replication for fault tolerance and high availability. Berkeley DB is designed to support any structured information model and has been incorporated into relational, object, network and hierarchical systems. Due to its scalability and minimal overhead, it has also been used in a number of reliable messaging, data streaming, caching, and data archival systems. Platforms and Testing Methodology All performance tests were run on the following commodity hardware and operating system combinations, without customized configuration, tuning or any other performance enhancing techniques. All tests were run on clean installations in multi-user mode systems that were otherwise quiescent. For the workloads presented, these are the results that can be obtained under actual use. Performance is often the first critical factor when selecting a database.
    [Show full text]
  • Lessons Learned from the Jboss Performance Team
    From the trenches: Lessons learned from the JBoss performance team Ståle W. Pedersen Senior Principal Software Engineer 29 June 2016 Agenda Lessons of what we've learned…. • Methodology • Tools • Profiling • Benchmarking • Road to EAP7 from a performance perspective Methodology Performance optimization Methodology Methodology What • What prevents my application from running faster? – Monitoring Methodology What -> Where • What prevents my application from running faster? – Monitoring • Where does it hide? – Profiling Methodology What -> Where -> How • What prevents my application from running faster? – Monitoring • Where does it hide? – Profiling • How can we improve performance? – tuning/optimizing Methodology Top down approach • System Level – Disks, CPU, Memory, Network, .... Methodology Top down approach • System Level – Disks, CPU, Memory, Network, .... • JVM Level – Heap, GC, JIT, Classloading, …. Methodology Top down approach • System Level – Disks, CPU, Memory, Network, .... • JVM Level – Heap, GC, JIT, Classloading, …. • Application Level – APIs, Algorithms, Threading, …. Tools Tools Tool types • Observability, safe, depending on overhead • Benchmarking, load testing. Difficult to do in a production environment • Tuning, changes could hurt performance, perhaps not now or at the current load, but later top System summary, list processes or threads • Can miss processes that do not last long enough to be caught • Will most often consume a fair bit of CPU • Default summary CPU usage, use “1” to get a better view of cores dmesg Print
    [Show full text]
  • Mysql 5.7 Release Notes
    MySQL 5.7 Release Notes Abstract This document contains release notes for the changes in each release of MySQL 5.7, up through MySQL 5.7.36. For information about changes in a different MySQL series, see the release notes for that series. For additional MySQL 5.7 documentation, see the MySQL 5.7 Reference Manual, which includes an overview of features added in MySQL 5.7 (What Is New in MySQL 5.7), and discussion of upgrade issues that you may encounter for upgrades from MySQL 5.6 to MySQL 5.7 (Changes in MySQL 5.7). MySQL platform support evolves over time; please refer to https://www.mysql.com/support/supportedplatforms/ database.html for the latest updates. Updates to these notes occur as new product features are added, so that everybody can follow the development process. If a recent version is listed here that you cannot find on the download page (https://dev.mysql.com/ downloads/), the version has not yet been released. The documentation included in source and binary distributions may not be fully up to date with respect to release note entries because integration of the documentation occurs at release build time. For the most up-to-date release notes, please refer to the online documentation instead. For legal information, see the Legal Notices. For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users. Document generated on: 2021-09-24 (revision: 23358) Table of Contents Preface and Legal Notices ................................................................................................................. 2 Changes in MySQL 5.7.36 (Not yet released, General Availability) ......................................................
    [Show full text]
  • Graalvm JIT Compiler
    Partner Webcast – Cloud Native Java with GraalVM on OCI Catalin Pohrib Oracle EMEA A&C Partner Technology Cloud Engineer Oracle EMEA CCOE January 21, 2021 Safe harbor statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 3 Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Agenda 1 Oracle GraalVM Enterprise Overview 2 GraalVM on OCI Features 3 Accelerating Application Performance 4 Demo 5 Summary and Q&A 4 Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Agenda 1 Oracle GraalVM Enterprise Overview 2 GraalVM on OCI Features 3 Accelerating Application Performance 4 Demo 5 Summary and Q&A 5 Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Enterprises worldwide run 45 billion active Java VMs 55% Java is the only language used by > 55% of businesses worldwide1 #1 in 10 of the top 14 technology trends2 #1 programming language in the world3 Java powers your business-critical applications 1 , 2 VDC Research 2019 3 Tiobe Index February 2020 – https://www.tiobe.com/tiobe-index/ 6 Copyright © 2020, Oracle and/or its affiliates. All rights reserved. What is GraalVM Enterprise? GraalVM Enterprise • high-performance • polyglot compiler • run-time built for modern microservices For both cloud-native and on-premise environments.
    [Show full text]
  • Hotspot Virtual Machine Garbage Collection Tuning Guide
    Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide Release 13 F18539-01 September 2019 Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide, Release 13 F18539-01 Copyright © 2015, 2019, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency- specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Mysql Storage Engine Comparison Guide June 2009
    MySQL Storage Engine Comparison Guide June 2009 Copyright 2009, Sun Microsystems Page: 1 Table of Contents Introduction...................................................................................................................................... 3 Key Storage Engine Differentiation Points ...................................................................................... 3 MySQL/Sun Developed Engines.....................................................................................................4 Archive ......................................................................................................................................... 4 Blackhole...................................................................................................................................... 5 CSV.............................................................................................................................................. 6 Falcon .......................................................................................................................................... 7 Federated..................................................................................................................................... 8 Memory ........................................................................................................................................ 9 Merge ......................................................................................................................................... 10 MyISAM.....................................................................................................................................
    [Show full text]
  • Oracle Java ME Embedded 8 and 8.1
    ORACLE FAQ Frequently Asked Questions Oracle Java ME Embedded 8 and 8.1 Introduction Customer Benefits Oracle Java ME Embedded 8 enables device software Oracle Java ME Embedded 8 is designed to meet the needs of intelligence that can be delivered via modules and in- intelligent and connected services on resource constrained market upgrades, allowing device manufacturers to devices in the Internet of Things (IoT), such as those found in Wireless Modules, Building and Industrial Controllers, Smart extend the lifetime, flexibility, and value of embedded Meters, Tracking Systems, Environmental Monitors, solutions. Heathcare, Home Automation devices, Vending Machines, and more. Oracle Java ME Embedded 8 Enables IoT Technology in Small Embedded Devices Oracle Java ME Embedded 8 is a complete Java runtime Oracle Java ME Embedded 8 is designed and optimized to client, optimized for ARM architecture connected meet the unique requirements of small embedded, low power microcontrollers and other resource-constrained systems. The devices such as micro-controllers and other resource- product provides dedicated embedded functionality and is constrained hardware without screens or user interfaces. targeted for low-power, limited memory devices requiring • Ready-to-run client Java runtime stack optimized for support for a range of network services and I/O interfaces. embedded systems Built on an optimized implementation of Java Platform, Micro • Scalable from resource-constrained microcontroller devices to more powerful embedded systems Edition (Java ME)
    [Show full text]