2010-05-17 82 views
4

對於Jetty,Tomcat或您選擇的任何其他servlet容器,基本servlet的平均佔用空間(內存和任何其他顯着資源)是多少?這包括每個servlet幾乎總是需要的其他基本對象,例如視圖解析器。什麼是Java EE servlet的(內存)佔用空間?

我並不是在尋找一個定量的數字,而是任何指示性的答案,可以給出一個servlet如何「重」或「輕量級」的想法。

+1

我喜歡定量數字,但找不到任何地方。如果您需要爲每個容器實例運行一個客戶端應用程序,那麼知道@您將在jvm + container *實例數量之外(即,在啓動之前)使用多少內存會很好。由此你可以決定,好的,Tomcat每個實例消耗的內存太多;我會和Jetty,Winstone等一起去 – virtualeyes 2011-03-15 02:50:16

回答

4

我不認爲這是從堆棧溢出問題獲得很多好處。 「基本」定義以及不同版本的servlet軟件的變化將遠遠大於您自己測試所需的工作量。

只需創建一個沒有字段的「hello-world」類型的servlet,使用此WAR啓動您選擇的servlet容器並測量內存使用情況。這將廣泛地爲您提供servlet容器的開銷,在查看目標servlet的「重量級」時,您可以從實際內存測量中減去這些開銷。

如果您在實際系統上使用實際目標版本的servlet容器生成自己,那麼這些數字會比在此處回答「47MB」或類似內容的人更有用。

+2

+1,不過我可能會添加一些相同的servlet,以獲得更具統計意義的數字。即使如此,我還是會想象,與每個servlet相關的開銷與vm和servlet容器庫,本地套接字庫等的開銷相比可以忽略不計。 – mdma 2010-05-17 17:24:14

+0

我的期望非常好。但是,因爲Amr大概不相信,如果他自己測量,他會更強烈地採取這種方式;人們告訴他聽起來「不可信」的東西不會有同樣的影響。 – 2010-05-18 08:03:59

0

容器的大小是非常不相關的(Tomcat或Jetty,不是Websphere或類似的東西),除非你在做嵌入式編程。 Servlet的大小可以根據需要儘可能小,也可以根據需要調整。一般來說,無狀態Web應用程序每個線程的開銷比有狀態開銷少。