AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

如何將開發環境的 Spring Boot 應用程序內存降低 40% 以上

來源: 責編: 時間:2024-01-15 09:19:49 230觀看
導讀本文翻譯自:https://medium.com/@satanjim/how-we-reduced-the-memory-consumption-of-spring-boot-application-over-40-for-the-development-c8a5813fac23在開發基礎的 Spring Boot 應用程序時,我們需要考慮可承受的

本文翻譯自:https://medium.com/@satanjim/how-we-reduced-the-memory-consumption-of-spring-boot-application-over-40-for-the-development-c8a5813fac23WaL28資訊網——每日最新資訊28at.com

在開發基礎的 Spring Boot 應用程序時,我們需要考慮可承受的內存消耗。隨著添加更多依賴項,內存消耗也會增加。對于整體應用程序,通常仍然可以承受內存消耗,但當我們開發多個微服務并在本地計算機上運行時,這可能成為一場噩夢,影響開發效率。WaL28資訊網——每日最新資訊28at.com

Spring Boot 和 JVM 都帶有一些默認配置,適用于大多數情況,甚至在某些生產環境中也能勝任。但是如果我們能調整一些配置來適應本地開發,就可以顯著減少內存消耗。請注意,我不是 JVM 和 Spring Boot 方面的專家,只是想在這篇文章中分享一些我自己的經驗。WaL28資訊網——每日最新資訊28at.com

誰消耗了內存

首先,讓我們了解一下,到底是誰在消耗內存呢?沒錯,是 JVM。但是它是如何做到的呢?WaL28資訊網——每日最新資訊28at.com

要深入了解這個問題,我們需要了解 JVM 的內部結構,但這超出了本文的范圍。簡單來說,JVM 的內存消耗可以分成堆(Heap)、元空間(Metaspace)、每個線程的堆棧(Thread Stack)以及其他。WaL28資訊網——每日最新資訊28at.com

內存消耗內存消耗WaL28資訊網——每日最新資訊28at.com

WaL28資訊網——每日最新資訊28at.com

為了減少內存消耗,我們需要向 JVM 顯式地傳遞一些參數。WaL28資訊網——每日最新資訊28at.com

首先,我們需要進行一些前置準備:WaL28資訊網——每日最新資訊28at.com

  • 安裝 Docker 和 docker-compose
  • 使用 Java 17 版本(但是 8 到最新版本之間的任何版本應該都可以,除了 Java 8 中的一些舊補丁)
  • 使用 Spring Boot

接下來,我們可以配置一些參數。創建一個名為"dev.jvm.conf"的文件,并輸入以下值(稍后我們會解釋這些值的含義):WaL28資訊網——每日最新資訊28at.com

# dev.jvm.conf# 覆蓋應用程序的屬性SERVER_TOMCAT_ACCEPT_COUNT=3SERVER_TOMCAT_MAX_CONNECTIONS=3SERVER_TOMCAT_THREADS_MAX=3SERVER_TOMCAT_THREADS_MIN_SPARE=1SPRING_MAIN_LAZY_INITIALIZATION=true# 設置JVM參數JAVA_TOOL_OPTIONS=-XX:+UseSerialGC -Xss512k -XX:MaxRAM=200m

然后,我們使用 docker-compose 將這些環境變量傳遞到容器中:WaL28資訊網——每日最新資訊28at.com

# docker-compose.ymlservices:  service1:    image: service1:dev    env_file:      - dev.jvm.conf  service2:    image: service2:dev    env_file:      - dev.jvm.conf

現在運行docker-compose up命令,您應該能看到一些差異。WaL28資訊網——每日最新資訊28at.com

接下來,讓我們詳細討論一下這些配置

在開始之前,請記住,降低某些值不會直接減少本地環境中的內存使用量,因為本地環境中通常不會有那么多請求。我們添加閾值的目的是,即使在本地環境中,如果我們開始收到更多請求,也要限制其數量。這最終將有助于限制內存使用。WaL28資訊網——每日最新資訊28at.com

  • SERVER_TOMCAT_ACCEPT_COUNT:該屬性設置了當所有可能的請求處理線程都在使用時,傳入連接請求的最大隊列長度。當服務器負載較重且所有工作線程都繁忙時,傳入的請求將被放入隊列中。如果隊列已滿,額外的連接請求將被拒絕。默認值為 100。
  • SERVER_TOMCAT_MAX_CONNECTIONS:該屬性定義了 Tomcat 服務器同時能夠處理的最大連接數。默認值為 8192。
  • SERVER_TOMCAT_THREADS_MAX:該屬性控制 Tomcat 服務器將創建的請求處理線程的最大數量。默認值為 200。
  • SERVER_TOMCAT_THREADS_MIN_SPARE:該屬性為嵌入式 Tomcat 服務器設置了最小備用線程數。默認值為 10。
  • SPRING_MAIN_LAZY_INITIALIZATION:將該屬性值設置為 true 意味著應用程序中的所有 bean 都將延遲初始化。這將有助于縮短啟動時間。
  • JAVA_TOOL_OPTIONS:使用該屬性,我們可以向 JVM 傳遞一些額外的參數。讓我們來談談其中的每個參數意義。
  • -XX:+UseSerialGC:這個參數會使 JVM 使用單線程進行內聯垃圾收集,而不是使用專用的 GC 線程。
  • -Xss512k:這個參數將每個線程的堆棧大小限制為 512KB,而不是默認的 1MB。
  • -XX:MaxRAM=200m:這個參數設置 JVM 最大可使用的 RAM 內存為 200MB。

這是一些簡單的調整,但它們可以在本地開發環境中顯著減少內存消耗。當然,根據您的具體情況,您可能需要進一步進行調整。這只是一個起點,您可以根據實際需求進行優化。WaL28資訊網——每日最新資訊28at.com

總結

總而言之,通過適當配置 JVM 和 Spring Boot,并理解內存消耗的原理,我們可以降低本地開發環境的內存消耗,提高工作效率。希望這些提示能對您有所幫助!WaL28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-60921-0.html如何將開發環境的 Spring Boot 應用程序內存降低 40% 以上

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何使用FluentResults優雅地處理結果和錯誤

下一篇: 程序員進階架構師必看的面試重災區:JVM整體架構、內存模型與調優實戰

標簽:
  • 熱門焦點
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 電視息屏休眠仍有網絡上傳 愛奇藝被質疑“薅消費者羊毛”

    記者丨寧曉敏 見習生丨汗青出品丨鰲頭財經(theSankei) 前不久,愛奇藝發布了一份亮眼的一季報,不僅營收和會員營收創造歷史最佳表現,其運營利潤也連續6個月實現增長。自去年年初
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 回歸OPPO兩年,一加贏了銷量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創佳績。今年618期間,一加手機全渠道銷量同比增長362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • 由于成本持續增加,筆記本產品價格預計將明顯上漲

    根據知情人士透露,由于材料、物流等成本持續增加,筆記本產品價格預計將在2021年下半年有明顯上漲。進入6月下旬以來,全球半導體芯片缺貨情況加劇,顯卡、處理器
Top