我可以選擇關於內存問題的大腦嗎?java web應用程序的內存消耗(300MB太高?)
我的Java應用程序,這是不是很大(如14000 LOC)是採用左右的內存300MB。它使用MySQL數據庫在Tomcat上運行。我使用Hibernate,Spring和Velocity。
它似乎沒有任何泄漏,導致它穩定和300MB,沒有進一步發展。 (另外,我做了一些分析。)然而,我的團隊擔心它使用的空間量。這看起來很高。你有什麼方法縮小它的建議?
任何想法表示讚賞。
喬
我可以選擇關於內存問題的大腦嗎?java web應用程序的內存消耗(300MB太高?)
我的Java應用程序,這是不是很大(如14000 LOC)是採用左右的內存300MB。它使用MySQL數據庫在Tomcat上運行。我使用Hibernate,Spring和Velocity。
它似乎沒有任何泄漏,導致它穩定和300MB,沒有進一步發展。 (另外,我做了一些分析。)然而,我的團隊擔心它使用的空間量。這看起來很高。你有什麼方法縮小它的建議?
任何想法表示讚賞。
喬
LOC的數量沒有多少堆Java應用程序將要使用的指標;從一個到另一個沒有相關性。
對於緩存數據的服務器應用程序來說,300MB並不是特別大,但對於沒有保存任何類型的緩存或會話數據的應用程序而言,它有點大(但由於這包括了網絡服務器本身,通常是300MB )。
(交通線)的代碼量很少,對應用程序的內存佔用太大的影響,畢竟,這是存儲在佔據了大部分內存的變量和對象。對我來說,300兆聽起來並不多,但當然這取決於你的具體使用方案:
此基礎上,你可以做一些計算,例如。爲您的生產環境準備處理您預計用戶量,你需要更多的硬件,你也許需要序列化一些數據到磁盤/ DB等
我不能做出任何承諾,但我不」你認爲你需要擔心。我們通過Glassfish運行一些Web應用程序,同時使用hibernate,每個在開發中使用大約800-900MB,通常會有2個域運行每個大小。
他們都是生產應用程序已經超過2年 – 2012-03-05 21:10:28
如果您確實需要減少佔用空間,至少要確保您使用的是Velocity 1.6或更高版本。 1.5浪費了一點記憶。
您的問題沒有包含足夠的信息來幫助我們制定有用的答案。內存使用不直接與LOC相關聯;這取決於你在這些方面做了什麼。我們必須看到代碼和/或功能的良好描述才能夠智能地回答。 – 2012-03-05 21:05:12
我可以提供什麼信息? – Joe 2012-03-05 21:05:50
如何縮小它需要對代碼進行一些分析。至少對我而言,這似乎並不高。我的webserver和eclipse一起(2個java進程)運行大約1G內存。我們的網絡服務雖然是大量的線... – kand 2012-03-05 21:06:21