Convert Figma logo to code with AI

dragonwell-project logodragonwell8

Alibaba Dragonwell8 JDK

4,186
494
4,186
145

Top Related Projects

Amazon Corretto 8 is a no-cost, multi-platform, production-ready distribution of OpenJDK 8

3,274

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.

GraalVM CE binaires built by the GraalVM community

11,850

🥤 COLA: Clean Object-oriented & Layered Architecture

Quick Overview

Dragonwell8 is an open-source OpenJDK distribution developed by Alibaba. It aims to provide enhanced features and optimizations for large-scale Java applications, particularly in cloud environments. Dragonwell8 is based on OpenJDK 8 and includes various performance improvements and enterprise-grade features.

Pros

  • Enhanced performance for large-scale Java applications
  • Improved garbage collection and memory management
  • Additional enterprise-grade features not found in standard OpenJDK
  • Regular updates and security patches

Cons

  • Limited to Java 8, which may not be suitable for projects requiring newer Java versions
  • Potential compatibility issues with some third-party libraries or tools
  • Less widespread adoption compared to other OpenJDK distributions
  • May require additional configuration to fully utilize its features

Getting Started

To get started with Dragonwell8, follow these steps:

  1. Download the latest Dragonwell8 release from the GitHub repository: https://github.com/dragonwell-project/dragonwell8/releases

  2. Extract the downloaded archive to your desired location.

  3. Set the JAVA_HOME environment variable to point to the Dragonwell8 installation directory:

    export JAVA_HOME=/path/to/dragonwell8
    export PATH=$JAVA_HOME/bin:$PATH
    
  4. Verify the installation by running:

    java -version
    

    You should see output indicating that you're using Dragonwell8.

  5. To use Dragonwell8 in your Java projects, simply compile and run your Java applications as you would with any other JDK:

    javac YourApplication.java
    java YourApplication
    

Note that Dragonwell8 includes additional JVM options and features that you can leverage for optimizing your applications. Refer to the project documentation for more information on these advanced features and how to use them effectively in your Java applications.

Competitor Comparisons

Amazon Corretto 8 is a no-cost, multi-platform, production-ready distribution of OpenJDK 8

Pros of Corretto-8

  • Backed by Amazon, ensuring long-term support and regular updates
  • Wider adoption and community support due to Amazon's involvement
  • Extensive documentation and integration guides for various platforms

Cons of Corretto-8

  • Less focus on specific performance optimizations compared to Dragonwell8
  • Fewer custom features tailored for cloud environments
  • May have a slower release cycle for new features

Code Comparison

Corretto-8:

public class AmazonCorrettoExample {
    public static void main(String[] args) {
        System.out.println("Hello from Amazon Corretto!");
    }
}

Dragonwell8:

public class AlibabaDragonwellExample {
    public static void main(String[] args) {
        System.out.println("Hello from Alibaba Dragonwell!");
    }
}

While the code examples are similar, Dragonwell8 may include additional optimizations and features specific to cloud environments and Alibaba's infrastructure. Both projects aim to provide enhanced versions of OpenJDK 8, but with different focuses and backing organizations. Corretto-8 benefits from Amazon's widespread cloud presence, while Dragonwell8 leverages Alibaba's expertise in large-scale distributed systems.

3,274

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.

Pros of OpenJ9

  • Better memory management and lower memory footprint
  • Faster startup times and improved performance for long-running applications
  • More extensive platform support, including AIX and z/OS

Cons of OpenJ9

  • Smaller community and ecosystem compared to HotSpot-based JVMs
  • Less widespread adoption in enterprise environments
  • Potential compatibility issues with some Java applications optimized for HotSpot

Code Comparison

OpenJ9:

if (CompressedRefs::use32bitReferenceShift()) {
    return (uintptr_t)heap >> CompressedRefs::SHIFT_AMOUNT;
} else {
    return (uintptr_t)heap;
}

Dragonwell8:

if (UseCompressedOops) {
    return (uintptr_t)heap >> LogMinObjAlignmentInBytes;
} else {
    return (uintptr_t)heap;
}

Both snippets handle compressed references, but OpenJ9 uses a more flexible approach with CompressedRefs::use32bitReferenceShift(), while Dragonwell8 relies on the UseCompressedOops flag. OpenJ9's implementation allows for different shift amounts, potentially offering more fine-grained control over memory management.

GraalVM CE binaires built by the GraalVM community

Pros of GraalVM CE Builds

  • Supports multiple programming languages (Java, JavaScript, Python, Ruby, R, etc.)
  • Offers advanced JIT compilation and ahead-of-time compilation for improved performance
  • Provides native image generation for creating standalone executables

Cons of GraalVM CE Builds

  • Larger installation size due to support for multiple languages
  • May have compatibility issues with some existing Java applications
  • Steeper learning curve for developers unfamiliar with polyglot programming

Code Comparison

GraalVM CE Builds:

import org.graalvm.polyglot.*;

public class PolyglotExample {
    public static void main(String[] args) {
        Context context = Context.create("js");
        Value result = context.eval("js", "40 + 2");
        System.out.println(result.asInt()); // Outputs: 42
    }
}

Dragonwell8:

public class StandardJavaExample {
    public static void main(String[] args) {
        int result = 40 + 2;
        System.out.println(result); // Outputs: 42
    }
}

The code comparison demonstrates GraalVM's polyglot capabilities, allowing JavaScript execution within Java code. Dragonwell8, being a standard Java runtime, uses traditional Java syntax without built-in polyglot features.

11,850

🥤 COLA: Clean Object-oriented & Layered Architecture

Pros of COLA

  • Focuses on application architecture and design patterns, offering a comprehensive framework for enterprise applications
  • Provides a clean, modular structure that promotes separation of concerns and scalability
  • Offers extensive documentation and examples for easier adoption and implementation

Cons of COLA

  • Limited to Java applications, whereas Dragonwell8 is a JDK distribution applicable to various Java projects
  • May introduce additional complexity for smaller projects that don't require such a comprehensive architecture
  • Less mature and widely adopted compared to Dragonwell8, which is based on OpenJDK

Code Comparison

COLA example (Domain-Driven Design structure):

@Data
@Entity
public class Customer extends EntityObject {
    private String customerId;
    private String memberId;
    private String globalId;
    private CustomerType customerType;
}

Dragonwell8 example (JDK-specific optimization):

public static void main(String[] args) {
    // Dragonwell8-specific JVM flag
    System.setProperty("UseWisp2", "true");
    // Rest of the application code
}

While COLA focuses on application architecture and design patterns, Dragonwell8 provides JDK-level optimizations and enhancements. COLA is better suited for structuring large-scale enterprise applications, while Dragonwell8 offers performance improvements and additional features at the JVM level.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Dragonwell Logo

Alibaba Dragonwell8 User Guide

Alibaba Dragonwell8 Extended Edition Release Notes

Alibaba Dragonwell8 Standard Edition Release Notes

Introduction

Over the years, Java has proliferated in Alibaba. Many applications are written in Java and many our Java developers have written more than one billion lines of Java code.

Alibaba Dragonwell, as a downstream version of OpenJDK, is the in-house OpenJDK implementation at Alibaba optimized for online e-commerce, financial, logistics applications running on 100,000+ servers. Alibaba Dragonwell is the engine that runs these distributed Java applications in extreme scaling.

The current release supports Linux/x86_64 platform only.

Alibaba Dragonwell is clearly a "friendly fork" under the same licensing terms as the upstream OpenJDK project. Alibaba is committed to collaborate closely with OpenJDK community and intends to bring as many customized features as possible from Alibaba Dragonwell to the upstream.

Using Alibaba Dragonwell

Alibaba Dragonwell JDK currently supports Linux/x86_64 platform only.

Installation

Option 1, Download and install pre-built Alibaba Dragonwell
Option 2, Install via YUM

Alibaba Dragonwell is officially supported and maintained in Alibaba Cloud Linux 2 (Aliyun Linux 2) YUM repository, and this repo should be also compatible with Aliyun Linux 17.1, Red Hat Enterprise Linux 7 and CentOS 7.

  • For users running Alibaba Cloud Linux 2 OS, you should be able to install Alibaba Dragonwell by simply running: sudo yum install -y java-1.8.0-alibaba-dragonwell;
  • For users running with aforementioned compatible distros, place a new repository file under /etc/yum.repos.d (e.g.: /etc/repos.d/alinux-plus.repo) with contents as follows, then you should be able to install Alibaba Dragonwell by executing: sudo yum install -y java-1.8.0-alibaba-dragonwell:
# plus packages provided by Aliyun Linux dev team
[plus]
name=AliYun-2.1903 - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/alinux/2.1903/plus/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN

Enable Alibaba Dragonwell for Java applications

To enable Alibaba Dragonwell JDK for your application, simply set JAVA_HOME to point to the installation directory of Alibaba Dragonwell. If you installed Dragonwell JDK via YUM, follow the instructions prompted from post-install outputs, e.g.:

=======================================================================
Alibaba Dragonwell is installed to:
    /opt/alibaba/java-1.8.0-alibaba-dragonwell-8.0.0.212.b04-1.al7
You can set Alibaba Dragonwell as default JDK by exporting the
following ENV VARs:
$ export JAVA_HOME=/opt/alibaba/java-1.8.0-alibaba-dragonwell-8.0.0.212.b04-1.al7
$ export PATH=${JAVA_HOME}/bin:$PATH
=======================================================================

Acknowledgement

Special thanks to those who have made contributions to Alibaba's internal JDK builds.

Publications

Technologies included in Alibaba Dragonwell have been published in following papers