1

我有一个简单的 JSP/Servlet maven 应用程序,它允许用户上传存档文件。然后应用程序将解压缩包含 XML 文件的存档,并使用基本的 SAX 解析来解析它们。它将生成这些文件的内存表示,并将它们写入当前处于嵌入式模式的 Neo4J 图形数据库。

在开发过程中,我使用了 GlassFish v3,但考虑到生产,已经提出从 Glassfish 迁移到 Tomcat 的请求,所以我做到了。除了 Tomcat 的一些小问题迫使我添加 JSF 依赖项(尽管我没有使用任何 JSF)之外,Tomcat atm 还存在一个大问题。

我在 glassfish v3 上上传和解析的最大测试文件大约需要 8 秒。之后,由于我没有清理上传的文件(还),它需要大约 2 秒。

Tomcat7上的同一个文件第一次上传和解析大约需要90秒。其他时间大约少了 20 秒,大概是因为同样的原因。

无论如何,性能差异是 10 倍。我有点惊讶,因为我认为使用 Tomcat 实际上会提高速度,因为它比 Glassfish 更轻量级,因为我并没有真正使用高级Glassfish 提供的功能。

有没有人遇到过类似的问题,你做了什么来解决这个问题?这甚至可以解决,还是由于Tomcat的工作方式......

编辑:差异似乎在于负责将文件的内存表示写入实际数据库的代码部分......不知道为什么......

4

1 回答 1

1

我找不到 Tomcat 与 Glassfish 的比较,但是是的,新的 Glassfish 版本重量非常轻,性能非常好。我也有同样的经历。我想运行应用程序服务器而不是 Tomcat 不再是巨大的管理和硬件浪费(如果您愿意,可以使用轻量级 EJB 3 和 3.1)。如果您只选择必要的模块,Glassfish 安装的尺寸可能非常小。

检查此页面。它比较了 Jboss、Glassfish 和 Resin

http://hwellmann.blogspot.com/2011/06/java-ee-6-server-comparison.html

这个比较了 Glassfish 3.1 和 Jboss 6 & 7。

http://hwellmann.blogspot.com/2011/10/jboss-as-7-catch-up-with-java-ee-6.html

于 2013-07-19T17:46:16.293 回答