Java EE servlet的内存占用情况是多少?

4
对于Jetty、Tomcat或您选择的任何其他servlet容器,一个基本servlet的平均占用资源(内存和其他显著资源)是多少?这包括每个servlet几乎总是需要的任何其他基本对象,例如视图解析器。
我不特别寻找定量数字,但任何指示性答案都可以给出servlet的“重”或“轻”的想法。

1
我很想知道一个具体的数字,但是无论如何都找不到。如果您需要在每个容器实例中运行客户端应用程序,则最好知道使用 jvm + 容器 * 实例数量会消耗多少内存(即在启动之前)。有了这个信息,您就可以决定:Tomcat 每个实例消耗的内存太多了,我将选择 Jetty、Winstone 等。 - virtualeyes
2个回答

4
我不认为在Stack Overflow上询问这个问题会有太多好处。 "基本"的定义的变化,以及不同版本的servlet软件,将比测试自己所需的工作量要大得多。
只需创建一个没有字段的“hello-world”类型的servlet,使用您选择的servlet容器启动此WAR并测量内存使用情况。 这将广泛地给出servlet容器的开销,您可以从实际内存测量中减去它,以查看目标servlet的“重量”。
如果您使用实际系统上的目标版本的servlet容器生成数字,则这些数字将更加有用,而不是有人在此回复“47MB”或类似数字。

2
+1,不过我可能会添加多个相同的servlet,以获得更具统计意义的数字。即便如此,我想每个servlet所关联的开销与vm、servlet容器库、本地套接字库等开销相比将是微不足道的。 - mdma
我也有很高的期望。但是由于Amr可能持有不同的看法,如果他自己测量,他会更加强烈地接受这一点;告诉他一些听起来“不可信”的东西不会产生同样的影响。 - Andrzej Doyle

0

容器大小并不重要(Tomcat或Jetty,而不是Websphere或其他类似的),除非您正在进行嵌入式编程。Servlet的大小可以根据需要小到所需尺寸或大到所需尺寸。一般来说,无状态的Web应用程序每个线程的开销比有状态的Web应用程序更少。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接