91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Spring Boot為什么這么耗內(nèi)存

汽車(chē)玩家 ? 來(lái)源:Java技術(shù)架構(gòu) ? 作者:Java技術(shù)架構(gòu) ? 2020-05-05 22:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Spring Boot總體來(lái)說(shuō),搭建還是比較容易的,特別是Spring Cloud全家桶,簡(jiǎn)稱(chēng)親民微服務(wù),但在發(fā)展趨勢(shì)中,容器化技術(shù)已經(jīng)成熟,面對(duì)巨耗內(nèi)存的Spring Boot,小公司表示用不起。如今,很多剛誕生的JAVA微服務(wù)框架大多主打“輕量級(jí)”,主要還是因?yàn)镾pring Boot太重。

JAVA系微服務(wù)框架

No1-Spring Cloud

介紹

有Spring大靠山在,更新、穩(wěn)定性、成熟度的問(wèn)題根本不需要考慮。在JAVA系混的技術(shù)人員大約都聽(tīng)說(shuō)過(guò)Spring的大名吧,所以不缺程序員……,而且這入手的難度十分低,完全可以省去一個(gè)架構(gòu)師。

但是,你必然在服務(wù)器上付出:

至少一臺(tái)“服務(wù)發(fā)現(xiàn) ”的服務(wù)器;

可能有一個(gè)統(tǒng)一的網(wǎng)關(guān)Gateway;

可能需要一個(gè)用于“分布式配置管理”的配置中心;

可能進(jìn)行“服務(wù)追蹤”,知道我的請(qǐng)求從哪里來(lái),到哪里去;

可能需要“集群監(jiān)控”;

項(xiàng)目上線后發(fā)現(xiàn),我們需要好多服務(wù)器,每次在集群中增加服務(wù)器時(shí),都感覺(jué)心疼;

壓測(cè)30秒

壓測(cè)前的內(nèi)存占用

Spring Boot為什么這么耗內(nèi)存

如圖,內(nèi)存占用304M。

壓測(cè)時(shí)的內(nèi)存占用

Spring Boot為什么這么耗內(nèi)存

如圖,內(nèi)存占用1520M(1.5G),CPU上升到321%

概覽

Spring Boot為什么這么耗內(nèi)存

總結(jié)

一個(gè)Spring Boot的簡(jiǎn)單應(yīng)用,最少1G內(nèi)存,一個(gè)業(yè)務(wù)點(diǎn)比較少的微服務(wù)編譯后的JAR會(huì)大約50M;而Spring Cloud引入的組件會(huì)相對(duì)多一些,消耗的資源也會(huì)相對(duì)更多一些。

啟動(dòng)時(shí)間大約10秒左右: Started Application in 10.153 seconds (JVM running for 10.915)

JAVA系響應(yīng)式編程的工具包Vert.x

介紹

背靠Eclipse的Eclipse Vert.x是一個(gè)用于在JVM上構(gòu)建響應(yīng)式應(yīng)用程序的工具包。定位上與Spring Boot不沖突,甚至可以將Vert.x結(jié)合Spring Boot使用。眾多Vert.x模塊提供了大量微服務(wù)的組件,在很多人眼里是一種微服務(wù)架構(gòu)的選擇。

華為微服務(wù)框架Apache ServiceComb就是以Vert.x為底層框架實(shí)現(xiàn)的,在"基準(zhǔn)測(cè)試網(wǎng)站TechEmpower"中,Vert.x的表現(xiàn)也十分亮眼。

壓測(cè)30秒

壓測(cè)前的內(nèi)存占用

Spring Boot為什么這么耗內(nèi)存

如圖,內(nèi)存占用65M。

壓測(cè)時(shí)的內(nèi)存占用

Spring Boot為什么這么耗內(nèi)存

如圖,內(nèi)存占139M,CPU占2.1%,給人的感覺(jué)似乎并沒(méi)有進(jìn)行壓測(cè)。

概覽

Spring Boot為什么這么耗內(nèi)存

總結(jié)

Vert.x單個(gè)服務(wù)打包完成后大約7M左右的JAR,不依賴(lài)Tomcat、Jetty之類(lèi)的容器,直接在JVM上跑。

Vert.x消耗的資源很低,感覺(jué)一個(gè)1核2G的服務(wù)器已經(jīng)能夠部署許多個(gè)Vert.x服務(wù)。除去編碼方面的問(wèn)題,真心符合小項(xiàng)目和小模塊。git市場(chǎng)上已經(jīng)出現(xiàn)了基于Vert.x實(shí)現(xiàn)的開(kāi)源網(wǎng)關(guān)- VX-API-Gateway幫助文檔

https://duhua.gitee.io/vx-api-gateway-doc

對(duì)多語(yǔ)言支持,很適合小型項(xiàng)目快速上線。

啟動(dòng)時(shí)間不到1秒:Started Vert.x in 0.274 seconds (JVM running for 0.274)

JAVA系其他微服務(wù)框架

SparkJava

jar比較小,大約10M

占內(nèi)存小,大約30~60MB;

性能還可以,與Spring Boot相仿;

Micronaut

Grails團(tuán)隊(duì)新寵;

可以用 Java、Groovy 和 Kotlin 編寫(xiě)的基于微服務(wù)的應(yīng)用程序;

相比Spring Boot已經(jīng)比較全面;

性能較優(yōu),編碼方式與Spring Boot比較類(lèi)似;

啟動(dòng)時(shí)間和內(nèi)存消耗方面比其他框架更高效;

多語(yǔ)言;

依賴(lài)注入;

內(nèi)置多種云本地功能;

很新,剛發(fā)布1.0.0

Javalin

上手極為容易;

靈活,可以兼容同步和異步兩種編程思路;

JAR小,4~5M;

多語(yǔ)言;

有KOA的影子;

只有大約2000行源代碼,源代碼足夠簡(jiǎn)單,可以理解和修復(fù);

符合當(dāng)今趨勢(shì);

多語(yǔ)言;

嵌入式服務(wù)器Jetty;

Quarkus

啟動(dòng)快;

JAR小,大約10M;

文檔很少;

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    9

    文章

    3210

    瀏覽量

    76369
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3001

    瀏覽量

    116432
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MangoTree Halo Ultra「全新PXI」,標(biāo)配自動(dòng)糾錯(cuò)內(nèi)存#

    內(nèi)存
    芒果樹(shù)數(shù)字
    發(fā)布于 :2026年03月06日 15:59:34

    深入解析U-Boot image.c:RK平臺(tái)鏡像處理核心邏輯

    在瑞芯微(RK)平臺(tái)的嵌入式開(kāi)發(fā)中,U-Boot作為核心的啟動(dòng)加載程序,負(fù)責(zé)完成鏡像解析、校驗(yàn)、加載等關(guān)鍵流程。而image.c正是U-Boot中處理鏡像(uImage)的核心文件,尤其針對(duì)RK平臺(tái)
    的頭像 發(fā)表于 02-24 16:46 ?1450次閱讀
    深入解析U-<b class='flag-5'>Boot</b> image.c:RK平臺(tái)鏡像處理核心邏輯

    玩轉(zhuǎn)U-Boot bdinfo:嵌入式bsp開(kāi)發(fā)者的定制、擴(kuò)展與裁剪實(shí)戰(zhàn)指南

    作為嵌入式開(kāi)發(fā)者,U-Boot 是我們調(diào)試、適配板卡的核心工具,而 bdinfo 命令更是板級(jí)信息調(diào)試的“利器”——它能直觀打印內(nèi)存布局、Flash 信息、網(wǎng)絡(luò)配置、時(shí)鐘頻率等核心參數(shù)。但原廠
    的頭像 發(fā)表于 02-24 15:26 ?717次閱讀
    玩轉(zhuǎn)U-<b class='flag-5'>Boot</b> bdinfo:嵌入式bsp開(kāi)發(fā)者的定制、擴(kuò)展與裁剪實(shí)戰(zhàn)指南

    解析Rockchip平臺(tái)U-Boot核心文件:boot_rkimg.c到底做了什么?

    在嵌入式開(kāi)發(fā)中,U-Boot 作為引導(dǎo)程序的 “中流砥柱”,負(fù)責(zé)初始化硬件、加載內(nèi)核并啟動(dòng)系統(tǒng)。對(duì)于 Rockchip 平臺(tái)的設(shè)備(如常見(jiàn)的開(kāi)發(fā)板、智能終端),boot_rkimg.c 是 U-Boot 中專(zhuān)門(mén)處理啟動(dòng)流程的核心
    的頭像 發(fā)表于 02-03 15:29 ?746次閱讀
    解析Rockchip平臺(tái)U-<b class='flag-5'>Boot</b>核心文件:<b class='flag-5'>boot</b>_rkimg.c到底做了什么?

    rk基于linux/android內(nèi)存管理

    一、內(nèi)存分布 ? U-Boot 由前級(jí) Loader 加載到 CONFIG_SYS_TEXT_BASE 地址,初始化時(shí)會(huì)探明當(dāng)前系統(tǒng)的總內(nèi)存容 量, 32 位平臺(tái)上認(rèn)為最大 4GB 可用(但是不影響
    的頭像 發(fā)表于 12-15 10:42 ?212次閱讀
    rk基于linux/android<b class='flag-5'>內(nèi)存</b>管理

    深入理解?RK3506 U-Boot?重定位:從代碼到原理

    在嵌入式系統(tǒng)中,U-Boot?作為引導(dǎo)加載程序,其啟動(dòng)流程的核心環(huán)節(jié)之一就是 重定位(Relocation) 。對(duì)于?RK3506?這類(lèi)基于?ARM Cortex-A?架構(gòu)的芯片,重定位的本質(zhì)是將
    的頭像 發(fā)表于 11-28 07:05 ?593次閱讀
    深入理解?RK3506 U-<b class='flag-5'>Boot</b>?重定位:從代碼到原理

    一款基于Java+Spring Boot+Vue的智慧隨訪管理系統(tǒng)源碼

    智慧隨訪管理系統(tǒng)源碼,一款基于Java+Spring Boot+Vue的B/S架構(gòu)醫(yī)院隨訪管理系統(tǒng)源碼,采用前后端分離技術(shù)(Ant-Design+MySQL5),具有自主版權(quán)和落地案例。 隨訪管理
    的頭像 發(fā)表于 11-13 15:38 ?397次閱讀
    一款基于Java+<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>+Vue的智慧隨訪管理系統(tǒng)源碼

    Spring攔截器:你的請(qǐng)求休想逃過(guò)我的五指山!

    Spring框架中,攔截器(Interceptor)是一種強(qiáng)大的機(jī)制,它允許開(kāi)發(fā)者在請(qǐng)求處理的不同階段插入自定義邏輯。WebApplicationContext作為Spring Web應(yīng)用的上下文容器,為攔截器的配置和管理提供了基礎(chǔ)支持。
    的頭像 發(fā)表于 07-26 11:25 ?690次閱讀
    <b class='flag-5'>Spring</b>攔截器:你的請(qǐng)求休想逃過(guò)我的五指山!

    fn_u-boot-spl.bin和u-boot-spl.bin區(qū)別是什么?請(qǐng)問(wèn)如何從u-boot-spl.bin生成fn_u-boot-spl.bin?

    fn_u-boot-spl.bin = bootrom頭 + u-boot-spl.bin ;生成過(guò)程見(jiàn)后面代碼片段; bootrom頭(格式詳見(jiàn)) + u-boot-spl.bin(標(biāo)準(zhǔn)的一級(jí)
    發(fā)表于 07-11 07:58

    飛凌嵌入式ElfBoard ELF 1板卡-uboot啟動(dòng)流程分析之boot ROM階段

    分內(nèi)容可以去參考硬件手冊(cè)),判斷啟動(dòng)介質(zhì),然后初始化內(nèi)存以及啟動(dòng)介質(zhì),最后讀取uboot代碼程序到內(nèi)存中開(kāi)始運(yùn)行,因此boot ROM需要做這么幾個(gè)工作:CPU初始化,時(shí)鐘初始化,
    發(fā)表于 05-28 10:01

    瑞薩RA芯片的Boot模式簡(jiǎn)介

    RA芯片在上電或通過(guò)芯片復(fù)位引腳進(jìn)行復(fù)位時(shí),會(huì)根據(jù)MD引腳的電平來(lái)進(jìn)入不同的芯片操作模式:“Single-chip Mode”或者“Boot Mode”。
    的頭像 發(fā)表于 04-09 10:52 ?2335次閱讀
    瑞薩RA芯片的<b class='flag-5'>Boot</b>模式簡(jiǎn)介

    瑞薩RZT2H CR52雙核BOOT流程和例程代碼分析

    以雙CR52 Core為例,說(shuō)明了T2H多核系統(tǒng)的BOOT流程。
    的頭像 發(fā)表于 04-02 09:28 ?2225次閱讀
    瑞薩RZT2H CR52雙核<b class='flag-5'>BOOT</b>流程和例程代碼分析

    為什么BOOT_CFG1_1和BOOT_CFG1_6為L(zhǎng)時(shí)不能寫(xiě)入?

    和“MIMXRT1060-EVKB Board User Manual”使用以下設(shè)置進(jìn)行編寫(xiě),但發(fā)生了錯(cuò)誤。 BOOT_MODE0:H BOOT_MODE1:L BOOT_CFG1_0:H
    發(fā)表于 03-28 08:11