![](/img/trans.png)
[英]Arrays and Linked List : will arrays be able to allocate 300MB in memory if 512 MB is free but 300 MB is not contiguous
[英]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.