簡體   English   中英

Java Web應用程序的內存消耗(300MB太高了嗎?)

[英]Memory consumption for java web app (300MB too high?)

我可以就記憶問題打動您的大腦嗎?

我的Java應用程序並不大(例如14000 LOC),使用的內存約為300MB。 它在帶有MySQL數據庫的Tomcat上運行。 我正在使用Hibernate,Spring和Velocity。

它似乎沒有任何泄漏,導致它穩定了300MB,並且沒有進一步增長。 (此外,我進行了一些分析。)但是,我的團隊對它使用的空間量有些擔心。 這看起來很高嗎? 您對縮小方法有任何建議嗎?

任何想法表示贊賞。

LOC的數量並不表示Java應用程序將使用多少堆內存; 彼此之間沒有關聯。

對於正在緩存數據的服務器應用程序,300MB並不是特別大,但是對於不保存任何類型的緩存或會話數據的應用程序,300MB可能會很大(但是由於其中包括Web服務器本身,所以300MB通常是合理的)。

代碼量(LOC)很少會對應用程序的內存使用產生很大影響,畢竟,存儲的變量和對象占用了大部分內存。 對我來說,300兆字節聽起來並不多,但是當然這取決於您的特定使用情況:

  • 生產服務器有多少內存?
  • 使用的內存量有多少個用戶?
  • 每個用戶會話的內存使用量會增長多少?
  • 您預計有多少用戶在生產環境中同時訪問該應用程序?

基於這些,您可以進行一些計算,例如。 您的生產環境是否已准備好處理您期望的用戶數量,是否需要更多硬件,是否可能需要將一些數據序列化到磁盤/數據庫等?

我無法做出任何承諾,但我認為您不必擔心。 我們通過Glassfish運行了幾個Web應用程序,同時也使用了休眠模式,每個應用程序都使用約800-900MB的開發資源,並且通常每個大小都有2個域在運行。

如果確實需要減少占用空間,則至少要確保使用的是Velocity 1.6或更高版本。 1.5浪費了很多內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM