偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

更快的Maven來(lái)了,我的天,速度提升了8倍!

開(kāi)發(fā) 開(kāi)發(fā)工具
本文介紹了 mvnd,一個(gè)內(nèi)置了 maven 但執(zhí)行效率遠(yuǎn)比 maven 快很多的工具。它的上手難度很低,對(duì)于用戶來(lái)說(shuō),只是將之前 maven 命令的開(kāi)頭從“mvn”換成了“mvnd”而已。

[[442136]]

本文轉(zhuǎn)載自微信公眾號(hào)「Java中文社群」,作者磊哥。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java中文社群公眾號(hào)。

周末被 maven-mvnd 刷屏了,于是我也下載了一個(gè) mvnd 體驗(yàn)了一把。雖然測(cè)試的數(shù)據(jù)都是基于我本地項(xiàng)目,不具備普適性和權(quán)威性,但也足以說(shuō)明問(wèn)題。它的測(cè)試結(jié)果遠(yuǎn)遠(yuǎn)超出我的預(yù)期,下面一起來(lái)看。

什么是 mvnd?

mvnd 是 Maven Daemon 的縮寫(xiě) ,翻譯成中文就是 Maven 守護(hù)進(jìn)程。

mvnd 是 apache/maven 的一個(gè)子項(xiàng)目,它并不是一個(gè)全新的構(gòu)建工具,而是對(duì) maven 的擴(kuò)展。它內(nèi)置了 maven,其實(shí)現(xiàn)原理是構(gòu)建了一個(gè)或者多個(gè) maven 守護(hù)進(jìn)程來(lái)執(zhí)行構(gòu)建服務(wù)。

mvnd 概述

1.mvnd 的目標(biāo)是使用 Gradle 和 Takari 所知的技術(shù)提供更快的 Maven 構(gòu)建。

Gradle 是一個(gè)基于 Apache Ant 和 Apache Maven 概念的項(xiàng)目自動(dòng)化建構(gòu)工具。Gradle 構(gòu)建腳本使用的是 Groovy 或 Kotlin 的特定領(lǐng)域語(yǔ)言來(lái)編寫(xiě)的,而不是傳統(tǒng)的 XML。Gradle 最大的優(yōu)勢(shì)就是比傳統(tǒng)的 Maven 構(gòu)建速度更快。Takari 是 maven-wrapper 核心,大部分的開(kāi)源項(xiàng)目都是提供 warpper 方便用戶不安裝 maven 的前提下快速構(gòu)建項(xiàng)目的。

2.mvnd 內(nèi)嵌了 Maven,所以不需要單獨(dú)安裝 Maven 了。

3.一個(gè)守護(hù)進(jìn)程實(shí)例可以服務(wù)于來(lái)自 mvnd 客戶端的多個(gè)連續(xù)請(qǐng)求。

4.mvnd 客戶端使用 GraalVM 構(gòu)建本地可執(zhí)行文件,與啟動(dòng)傳統(tǒng) JVM 相比,它啟動(dòng)得更快,占用的內(nèi)存更少。

5.如果 mvnd 沒(méi)有空閑守護(hù)進(jìn)程來(lái)服務(wù)一個(gè)構(gòu)建請(qǐng)求,可以并行地生成多個(gè)守護(hù)進(jìn)程。

mvnd 優(yōu)點(diǎn)介紹

mvnd 具有以下優(yōu)點(diǎn):

用于運(yùn)行構(gòu)建的 JVM 不需要每次構(gòu)建都重新啟動(dòng)。

持有 Maven 插件類的類加載器在多個(gè)構(gòu)建中會(huì)被緩存。因此,插件 jar 文件只被讀取和解析一次。(快照版本的 Maven 插件不會(huì)被緩存)

JVM 中即時(shí)(JIT)編譯器生成的本地代碼也被保留,與常規(guī) Maven 相比,JIT 編譯所花費(fèi)的時(shí)間更少。在重復(fù)構(gòu)建期間,JIT 優(yōu)化的代碼立即可用,這不僅適用于來(lái)自 Maven 插件和 Maven Core的代碼,也適用于所有來(lái)自 JDK 本身的代碼。

mvnd 安裝

mvnd 支持 Window、Linux、Macos,本文以 Windows 安裝為例。

1.下載并解壓 mvnd

下載地址:https://github.com/apache/maven-mvnd/releases選擇最新版的 Windows 資源包,如下圖所示:

下載完成之后,解壓到本地的某個(gè)目錄,如下圖所示:

2.配置環(huán)境變量

將 mvnd 解碼包的執(zhí)行目錄 bin 配置到系統(tǒng)變量 path 中,操作步驟如下圖所示:

3.測(cè)試 mvnd 安裝

接下來(lái)打開(kāi)命令行窗口,使用“mvnd -version”檢查一下 mvnd 是否正常安裝成功,如下圖所示:

如果打印了相關(guān)的版本信息就說(shuō)明安裝成功了。

mvn VS mvnd 性能測(cè)試

接下來(lái)就是本文的重頭戲了,使用我本地的一個(gè)項(xiàng)目來(lái)測(cè)試一下 mvn 和 mvnd 的性能差距。

我的電腦配置如下:

1.mvn 性能測(cè)試

傳統(tǒng)的 maven 執(zhí)行結(jié)果如下圖所示:

打包我本地的一個(gè)項(xiàng)目,跳過(guò)單元測(cè)試。

mvn 性能測(cè)試結(jié)果:1.312 秒。

2.mvnd 性能測(cè)試

mvnd 性能測(cè)試結(jié)果 0.154 秒。

總結(jié)

本文介紹了 mvnd,一個(gè)內(nèi)置了 maven 但執(zhí)行效率遠(yuǎn)比 maven 快很多的工具。它的上手難度很低,對(duì)于用戶來(lái)說(shuō),只是將之前 maven 命令的開(kāi)頭從“mvn”換成了“mvnd”而已。

mvnd 構(gòu)建了一個(gè)或者多個(gè) maven 守護(hù)進(jìn)程,使用了全新的 VM 引擎,并添加了緩存及 JIT 優(yōu)化,從而大大的提高了 maven 項(xiàng)目的構(gòu)建速度,也讓我們看到了一個(gè)能與 Gradle 一較高下的希望,我會(huì)持續(xù)關(guān)注此項(xiàng)目,希望它發(fā)展的越來(lái)越好。 

參考資料:https://github.com/apache/maven-mvnd

 

責(zé)任編輯:武曉燕 來(lái)源: Java中文社群
相關(guān)推薦

2025-05-27 01:55:00

TypeScript開(kāi)發(fā)者項(xiàng)目

2022-04-21 07:51:51

場(chǎng)景JavaSQL

2023-03-22 13:53:26

芯片英偉達(dá)

2024-07-17 08:25:44

2021-02-19 23:44:27

Windows 10Windows微軟

2024-10-29 08:21:05

2024-01-19 13:41:00

AI模型

2021-02-02 15:38:19

Disruptor緩存Java

2021-09-13 10:25:35

開(kāi)發(fā)技能代碼

2024-06-12 08:08:08

2021-02-19 18:10:06

微軟WindowsWindows 10

2022-09-21 17:43:29

Kafka底層網(wǎng)絡(luò)

2017-05-10 16:09:12

MySQL數(shù)據(jù)庫(kù)查詢

2023-08-29 06:50:01

Javamaven

2022-09-09 09:33:14

支付寶代碼性能

2023-04-06 19:13:57

2025-01-14 12:00:00

Java開(kāi)發(fā)代碼

2009-03-29 09:47:24

蘋(píng)果Iphone移動(dòng)OS

2024-04-10 08:00:00

PostgresNoSQL

2013-03-26 16:51:16

Windows 8開(kāi)關(guān)機(jī)速度
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)