欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率(推薦)

 更新時間:2023年02月02日 10:08:06   作者:Antake  
這篇文章主要介紹了Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

GraalVM安裝

GraalVM安裝

安裝

請前往GraalVM官網(wǎng) 下載 GraalVM Community 22.3,注意當前支持的Springboot的GraalVM版本必須是22.3
筆者這里下載的Java版本為17,如下圖

安裝GraalVM的方法與安裝JAVA方法大致相同,GraalVM中包括了JDK(無需再次安裝JDK),同時還需要安裝native-image工具(后續(xù)下載)

配置環(huán)境變量

使用命令查看是否安裝graal vm成功

java -version

native-image工具安裝

這里下載的文件(同GraalVM下載位置下方的release文件)為native-image-installable-svm-java17-windows-amd64-22.3.0.jar如下圖所示

下載完成之后在文件目錄運行以下命令進行安裝

- gu install xxxx.jar(同下載的工具鏡像,網(wǎng)絡下載)
- gu install -L xxxx.jar(同下載的工具鏡像,本地文件)

使用以下命令查看是否安裝成功

gu list

native-image

Visual Studio安裝

編譯native image必須依賴VC++的編譯環(huán)境,這里必須使用微軟官方的vc++編譯工具Visual Studio,筆者這里使用的最新版本2022Visual Studi官網(wǎng)

To use Native Image on Windows, install Visual Studio and Microsoft Visual C++ (MSVC). There are two installation options: * Install the Visual Studio Build Tools with the Windows 10 SDK * Install Visual Studio with the Windows 10 SDK You can use Visual Studio 2017 version 15.9 or later. The `native-image` builder will only work when it is run from the **x64 Native Tools Command Prompt**. The command for initiating an x64 Native Tools command prompt varies according to whether you only have the Visual Studio Build Tools installed or if you have the full Visual Studio 2019 installed.

從上可知,Visual Studio 2017 version 15.9 or later均可
打開Visual Studio Installer,勾選如下圖中三個組件

安裝完成后,需要配置VC++的編譯環(huán)境變量PATH,INCLUDE,LIB

LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\ucrt\x64;D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\lib\x64

INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\shared;D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\include

PATH=D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64

Springboot應用初體驗

創(chuàng)建項目

運行項目

調(diào)試運行,正常啟動

編譯運行

編譯

如果出錯選擇下面的,或者在編譯插件中重新配置

如果編譯都不行,用插件編譯之前現(xiàn)在console執(zhí)行以下命令

./mvnw -DskipTests=true -Pnative clean package

編譯完成之后在target里面查看文件

運行

運行對比

jar(JVM)本地exe(native image)文件大小18M69M啟動耗時1.183s0.098s內(nèi)存占用106M46m
根據(jù)上述對比結(jié)果,盡管是一個最簡單的springboot程序,但在啟動耗時上native具有明顯的優(yōu)勢,達到毫秒級,占用內(nèi)存少了一半多。
由于是一項新技術(shù),其推廣和普及肯定必定需要一段時間(畢竟我們還在JDK1.8,哈哈),但在一些新的小型應用中,完全可以試試手,畢竟盡量native用不了,還有jvm可以兜底,我們并需要為此做額外的工作。
最近,希望java web能通過native的特性,真正的適配云原生環(huán)境。

到此這篇關(guān)于Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率(推薦)的文章就介紹到這了,更多相關(guān)Windows使用Graalvm將Springboot編譯成exe內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 異常try?catch的常見四類方式(案例代碼)

    異常try?catch的常見四類方式(案例代碼)

    這篇文章主要介紹了異常try?catch的常見四類方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    本篇文章主要介紹了詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java中的泛型

    Java中的泛型

    這篇文章主要介紹為何要泛型,如何使用泛型,自定義泛型的方法,泛型類的子類等多方面介紹了JAVA中的泛型,需要的小伙伴請看下文
    2021-08-08
  • JAVA基礎之繼承(inheritance)詳解

    JAVA基礎之繼承(inheritance)詳解

    繼承(inheritance)是Java OOP中一個非常重要的概念。這篇文章主要介紹了JAVA基礎之繼承(inheritance),需要的朋友可以參考下
    2017-03-03
  • Springboot一個注解搞定返回參數(shù)key轉(zhuǎn)換功能

    Springboot一個注解搞定返回參數(shù)key轉(zhuǎn)換功能

    平時在搬磚的時候,大家有沒有遇到過這樣場景,由于各種因素導致,一個接口返回的數(shù)據(jù)里面的key是A,?但是客戶端(前端)要求返回的key不叫A叫Aa?。也就是返回的值不變,就是key換了。本文將通過一個注解搞定返回參數(shù)key轉(zhuǎn)換,需要的可以了解一下
    2022-10-10
  • controller層如何同時接收兩個實體類

    controller層如何同時接收兩個實體類

    這篇文章主要介紹了controller層如何同時接收兩個實體類問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java for循環(huán)詳解

    Java for循環(huán)詳解

    這篇文章主要介紹了Java for循環(huán)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 詳解mybatis-plus使用@EnumValue注解的方式對枚舉類型的處理

    詳解mybatis-plus使用@EnumValue注解的方式對枚舉類型的處理

    這篇文章主要介紹了詳解mybatis-plus使用@EnumValue注解的方式對枚舉類型的處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Java中SimpleDateFormat方法超詳細分析

    Java中SimpleDateFormat方法超詳細分析

    這篇文章主要給大家介紹了關(guān)于Java中SimpleDateFormat方法超詳細分析的相關(guān)資料,SimpleDateFormat 是一個以國別敏感的方式格式化和分析數(shù)據(jù)的具體類,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式(最新詳解)

    Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式(最新詳解)

    @Select 是 Mybatis 框架中的一個注解,用于執(zhí)行 SQL 查詢語句,并把查詢結(jié)果映射到指定的 Java 對象中,這篇文章主要介紹了Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式,需要的朋友可以參考下
    2023-07-07

最新評論