Java Servlet 容器性能?

5
我想向这里的Java专家提出一个关于我即将进行的学习的问题——各种Servlet容器效率差异的主要贡献因素是什么?我需要比较Tomcat/JBoss/Glassfish/Jetty等,并且我需要知道哪些“因素”会对结果产生最显著的影响?我将编写模拟应用程序,为此,如果您能推荐一些Java功能/框架/库等,以便我可以大大增加容器的负载(实际上只关心容器,不关心机器的负载,因为我当然会在同一台机器上运行所有测试),那将不胜感激!我需要这项研究尽可能客观。谢谢各位的帮助!

JBoss AS运行Tomcat容器,Jetty也是如此,如果我没有记错的话。为什么要比较Servlet容器的效率呢? - Buhake Sindi
这个问题很难回答。有许多值得进行基准测试的方面,也有许多可能性可以这样做。恐怕除非您解释一下从收集的数据中想要学习什么,否则无法给出有用的答案。也许可以先解释一下:您为什么要这样做? - jmg
@The Elite Gentleman:Jetty绝对不是基于Tomcat的,虽然早期版本的JBoss使用Tomcat作为Web容器,但我不确定当前版本是否仍然使用。 - Michael Borgwardt
好的,我必须进行这个比较,因为它是我毕业论文相关研究课题。我知道这非常学术化,实际上并没有太多用处,但无论如何,至少找出一些结果可能会很有趣。 - Marek Matejka
2个回答

6

除了大量请求外,以下是可能会影响Web容器性能的一些因素:

  • 使用小堆(例如只有128或256 MB)
  • 序列化对象过大,无法全部保存在内存中,需要进行会话暂停
  • 提供静态资源(大量小文件或某些大文件)
  • 请求失败(404或服务器错误)
  • JSP包含许多其他JSP
  • 大量不同的JSP
  • 大量不同的Servlet映射
  • 大量链接的Servlet过滤器
  • 大量独立应用程序
  • 重新部署应用程序(确保应用程序本身没有类加载器泄漏)

1

更多参数:

  1. 启用压缩
  2. 启用缓存
  3. 调整缓冲区大小

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