2010-12-12 72 views
1

我有一個問題從我的全新的Java Web應用程序。在網絡服務器中,每天增加訪問量的網站最大的問題是什麼?記憶是未來的問題嗎?我的應用程序使用簡單的J2EE,Tomcat,JPA和Hibernate。Java JVM如何工作?

我是一名PHP開發人員,並且對於我的網站的每個訪問者,我使用了更多的內存,而在Java中,這些內容是如何工作的?

+0

你到底在問什麼? J2E開發者最常遇到的問題是什麼? – 2010-12-12 23:08:44

+0

他可能會想知道它可能會失去資源...內存/運行時...它可能是什麼以及如何處理它 – lisak 2010-12-12 23:11:17

+0

是的,就是它lisak! – Marcos 2010-12-12 23:37:44

回答

1

與PHP一樣,Java Web應用程序爲每個併發請求使用一點內存。因此,同時運行的請求越多,內存足跡就越大。在某些負載下所需的總內存取決於每個請求處理的速度,因爲更快的處理意味着更少的併發請求。

我也假設一個PHP Web應用程序在啓動時使用很少的初始內存,但是會使用更多的內存相比,Java Web應用程序的每個請求。原因是Java Web應用程序通常會預先加載更多對象,而像Hybernate這樣的API通常會配置爲使用數據庫連接池和對象緩存。

1

這取決於你需要多少對象使用......在Java中,通常是內存的問題,這是一個事實,你創造的證件DOM模型造成的。

但是,如果它是一個簡單的Web應用程序,那麼問題應該是這樣的事實,總有一個servlet實例處理請求,這樣你就不會出去的內存,但它會變得非常緩慢。來自tomcat的線程將不得不等待,直到請求被處理以執行另一個線程。

每秒請求的數量只有限制......但正如我所說,這很可能會導致內存不足。

+0

Javascript使用DOM,Java servlets不使用。 – Kdeveloper 2010-12-12 23:37:08

+0

這是一個例子,他如何能夠擺脫記憶。我想應用程序正在做一些事情。不僅顯示內容。順便說一句,Hibernate是非常優化的,通常不是問題......與PHP Symfony框架比較,例如消耗大量內存和運行時本身。 – lisak 2010-12-12 23:42:39

+0

您能否向我解釋如何創建文檔的DOM模型可以創建內存問題?我正在做文檔分析,並在我的服務器上面臨內存問題(以及CodeCache),而在本地PC上運行正常。您的評論對我來說似乎很有趣。 – Waylander 2012-06-11 08:52:44