2012-03-05 102 views
5

我可以選擇關於內存問題的大腦嗎?java web應用程序的內存消耗(300MB太高?)

我的Java應用程序,這是不是很大(如14000 LOC)是採用左右的內存300MB。它使用MySQL數據庫在Tomcat上運行。我使用Hibernate,Spring和Velocity。

它似乎沒有任何泄漏,導致它穩定和300MB,沒有進一步發展。 (另外,我做了一些分析。)然而,我的團隊擔心它使用的空間量。這看起來很高。你有什麼方法縮小它的建議?

任何想法表示讚賞。

+2

您的問題沒有包含足夠的信息來幫助我們制定有用的答案。內存使用不直接與LOC相關聯;這取決於你在這些方面做了什麼。我們必須看到代碼和/或功能的良好描述才能夠智能地回答。 – 2012-03-05 21:05:12

+0

我可以提供什麼信息? – Joe 2012-03-05 21:05:50

+0

如何縮小它需要對代碼進行一些分析。至少對我而言,這似乎並不高。我的webserver和eclipse一起(2個java進程)運行大約1G內存。我們的網絡服務雖然是大量的線... – kand 2012-03-05 21:06:21

回答

4

LOC的數量沒有多少堆Java應用程序將要使用的指標;從一個到另一個沒有相關性。

對於緩存數據的服務器應用程序來說,300MB並不是特別大,但對於沒有保存任何類型的緩存或會話數據的應用程序而言,它有點大(但由於這包括了網絡服務器本身,通常是300MB )。

2

(交通線)的代碼量很少,對應用程序的內存佔用太大的影響,畢竟,這是存儲在佔據了大部分內存的變量和對象。對我來說,300兆聽起來並不多,但當然這取決於你的具體使用方案:

  • 多少內存的生產服務器有哪些?
  • 有多少用戶在使用此內存量?
  • 每個用戶會話的內存使用量增長多少?
  • 多少用戶,你希望是同時訪問在生產中使用的應用程序?

此基礎上,你可以做一些計算,例如。爲您的生產環境準備處理您預計用戶量,你需要更多的硬件,你也許需要序列化一些數據到磁盤/ DB等

0

我不能做出任何承諾,但我不」你認爲你需要擔心。我們通過Glassfish運行一些Web應用程序,同時使用hibernate,每個在開發中使用大約800-900MB,通常會有2個域運行每個大小。

+0

他們都是生產應用程序已經超過2年 – 2012-03-05 21:10:28

0

如果您確實需要減少佔用空間,至少要確保您使用的是Velocity 1.6或更高版本。 1.5浪費了一點記憶。