日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Graalvm替代JVM真的可以帶來(lái)巨大的性能優(yōu)勢(shì)嗎?

介紹

Spring Boot有助于輕松開發(fā)獨(dú)立的、可用于生產(chǎn)的 Spring 應(yīng)用程序。它對(duì) Spring 平臺(tái)和第三方庫(kù)采用固執(zhí)己見的方法:以最少的配置簡(jiǎn)化設(shè)置過(guò)程。優(yōu)勢(shì):

  • 易于使用:Spring Boot 簡(jiǎn)化了獨(dú)立 Spring 應(yīng)用程序的創(chuàng)建,無(wú)需復(fù)雜的配置。
  • 嵌入式服務(wù)器:它允許直接嵌入 Tomcat、Jetty 或 Undertow 等服務(wù)器,從而無(wú)需單獨(dú)部署 WAR 文件。
  • Starter 依賴項(xiàng):Spring Boot 提供預(yù)配置的“starter”依賴項(xiàng),降低了構(gòu)建配置的復(fù)雜性。
  • 自動(dòng)配置:Spring Boot 自動(dòng)配置 Spring 和第三方庫(kù),最大限度地減少手動(dòng)設(shè)置工作。
  • 生產(chǎn)就緒功能:它提供生產(chǎn)就緒功能,例如指標(biāo)、運(yùn)行狀況檢查和外部化配置,確保應(yīng)用程序穩(wěn)健且可擴(kuò)展。
  • 無(wú)需代碼生成或 XML 配置:Spring Boot 運(yùn)行時(shí)無(wú)需生成任何代碼,無(wú)需 XML 配置文件,從而提高了開發(fā)效率。

在常見的部署中,用 Java 編寫的 Spring Boot 應(yīng)用程序被編譯成默認(rèn)在 Java 虛擬機(jī) (JVM) 中運(yùn)行的字節(jié)碼。還有另一種鮮為人知的運(yùn)行 Java 應(yīng)用程序的方式:Native application

GraalVM通過(guò)提前將 Java 應(yīng)用程序編譯成緊湊的獨(dú)立二進(jìn)制文件,徹底改變了 Java 應(yīng)用程序。這些二進(jìn)制文件展現(xiàn)出明顯的優(yōu)勢(shì),啟動(dòng)速度比傳統(tǒng) Java 應(yīng)用程序快近 100 倍。它們無(wú)需預(yù)熱即可提供峰值性能,同時(shí)與 Java 虛擬機(jī) (JVM) 同類產(chǎn)品相比,消耗的內(nèi)存和 CPU 資源顯著減少。

GraalVM 并不局限于理論創(chuàng)新領(lǐng)域;它受到 Spring Boot、Micronaut、Helidon 和 Quarkus 等主要微服務(wù)框架的支持。此外,Oracle Cloud Infrastructure、Amazon Web Services、Google Cloud Platform 和 Microsoft Azure 等領(lǐng)先的云平臺(tái)完全支持 GraalVM 集成。

通過(guò)利用配置文件引導(dǎo)的優(yōu)化和 G1(垃圾優(yōu)先)垃圾收集器,GraalVM 使我們的應(yīng)用程序具有更低的延遲。事實(shí)上,它提供的性能指標(biāo)與在 Java 虛擬機(jī) (JVM) 上運(yùn)行的應(yīng)用程序的性能指標(biāo)相當(dāng)或更強(qiáng)。這種速度、效率和安全性的卓越結(jié)合使 GraalVM 成為現(xiàn)代 Java 開發(fā)的改變游戲規(guī)則的選擇。

過(guò)去,有很多使用 GraalVM 對(duì) Java 應(yīng)用程序進(jìn)行基準(zhǔn)測(cè)試的請(qǐng)求,期望 GraalVM 能夠超越傳統(tǒng)的 Java 虛擬機(jī) (JVM)。

在本篇文章中,我們將對(duì)各種 Java 應(yīng)用程序的性能進(jìn)行比較分析,評(píng)估它們?cè)?JVM 和 GraalVM 環(huán)境中的執(zhí)行情況。

我們將通過(guò)在 JVM(Java 虛擬機(jī))和 GraalVM 上執(zhí)行基本的“hello world”應(yīng)用程序進(jìn)行比較分析。通過(guò)這個(gè)比較,我們旨在探索 GraalVM 相對(duì)于傳統(tǒng) JVM 的優(yōu)越性能。

測(cè)試設(shè)置

所有測(cè)試均在具有 16G RAM 的 MacBook M1 上執(zhí)行。軟件版本有:

  • JDK 21
  • Graalvm JDK 21
  • SpringBoot 3.1.4

應(yīng)用程序代碼是一個(gè)包含單個(gè)路由的簡(jiǎn)單文件:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/")
    public String handleRequest() {
        return "Hello World!";
    }
}

為了構(gòu)建原生鏡像,我們使用了 MVN 的原生插件:



 4.0.0
 
  org.springframework.boot
  spring-boot-starter-parent
  3.1.4
  
  
 
 com.example
 demo
 0.0.1-SNAPSHOT
 demo
 Demo project for Spring Boot
 
  21
 
 
  
   org.springframework.boot
   spring-boot-starter-web
  
  
   org.springframework.boot
   spring-boot-starter-test
   test
  
 
 
  
   
    org.springframework.boot
    spring-boot-maven-plugin
    
     com.example.demo.DemoApplication
     JAR
    
   
   
    org.apache.maven.plugins
    maven-shade-plugin
    3.5.0
    
     
      package
      
       shade
      
     
    
   
  
 
 
  
   native
   
    
     
      org.graalvm.buildtools
      native-maven-plugin
      0.9.27
      true
      
       
        build-native
        
         compile-no-fork
        
        package
       
       
        test-native
        
         test
        
        test
       
      
      
       
      
     
    
   
  
 

原生二進(jìn)制大小約為76M:

76M /Users/mayankc/Work/source/perfComparisons/java/springboot/target/demo

結(jié)果

每個(gè)包含500萬(wàn)個(gè)請(qǐng)求的測(cè)試分別針對(duì)50、100和300個(gè)并發(fā)連接執(zhí)行。對(duì)于負(fù)載測(cè)試,我們使用了 Bombardier 測(cè)試工具。

以下是表格形式的測(cè)試結(jié)果:

統(tǒng)計(jì)

為了更直觀的展示測(cè)試結(jié)果,我們使用以下公式從結(jié)果中生成記分卡。對(duì)于每一個(gè)測(cè)量,結(jié)果獲勝的按照領(lǐng)先度得分:

  • <5%,不給分
  • 5%到20%之間,獲勝者得1分
  • 在20%到50%之間,獲勝者得2分
  • >50%,獲勝者得3分

以下是評(píng)分結(jié)果:

結(jié)論

選擇一個(gè)簡(jiǎn)單的 hello world 案例可能不是真正釋放 GraalVM 或本機(jī)代碼編譯潛力的最合適場(chǎng)景。本地運(yùn)行的相同 SpringBoot 應(yīng)用程序的性能并沒(méi)有明顯優(yōu)于其 JVM 對(duì)應(yīng)項(xiàng)。GraalVM 唯一顯著的優(yōu)勢(shì)在于其對(duì)內(nèi)存的高效利用。

本文僅從性能方面對(duì) GraalVM 和 傳統(tǒng) JVM 做了比較,參考以上測(cè)試結(jié)果,如果我們想要優(yōu)化程序啟動(dòng)速度和對(duì)內(nèi)存的利用率方面,GraalVM 會(huì)是更好的選擇,至于其他性能指標(biāo),優(yōu)勢(shì)并不明顯!

隨著 GraalVM 在國(guó)內(nèi)的推廣和應(yīng)用越來(lái)越廣泛,相信它將會(huì)在未來(lái)的軟件開發(fā)領(lǐng)域發(fā)揮越來(lái)越重要的作用,我們期待它之后的表現(xiàn)!


文章名稱:Graalvm替代JVM真的可以帶來(lái)巨大的性能優(yōu)勢(shì)嗎?
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/dpgioij.html