嵌入式 Tomcat 7 比 Tomcat 6 慢
我最近开始嵌入 Tomcat 7 进行集成测试,而不是 Tomcat 6,因为我需要 7 个功能中的一些功能,而且它是我们的目标容器。与嵌入式 Tomcat 6 相比,性能非常慢。启动服务器大约需要 20 秒。这是我正在使用的代码:
Tomcat tomcat = new Tomcat();
tomcat.setPort(port);
tomcat.setSilent(true);
tomcat.setBaseDir(".");
tomcat.getHost().setAppBase(webappDir);
tomcat.addWebapp(context, "");
tomcat.start();
还有其他人经历过这种情况或得到了提高性能的建议吗?我正在 Windows 7、Linux Mint 和 Ubuntu 上运行测试。
I recently started embedding Tomcat 7 for my integration tests, rather than Tomcat 6 as I need some of the 7 features and it's our target container. Performance is very slow compared to Tomcat 6 embedded. It's taking in the order of 20 seconds to start the server. This is the code I am using:
Tomcat tomcat = new Tomcat();
tomcat.setPort(port);
tomcat.setSilent(true);
tomcat.setBaseDir(".");
tomcat.getHost().setAppBase(webappDir);
tomcat.addWebapp(context, "");
tomcat.start();
Has anyone else experienced this or got suggestions for improving performance? I am running tests on Windows 7, Linux Mint and Ubuntu.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许由于 Servlet 3.0 基于注释的配置需要类路径扫描,所以速度很慢。如果您不需要这些功能,请尝试将
metadata-complete="true"
添加到web.xml
中。Perhaps it's slow due to classpath scanning which is required for annotation-based configuration of Servlet 3.0. If you don't need these features, try to add
metadata-complete="true"
to yourweb.xml
.这是它在 web.xml 标头中的实际外观:
此处有更多信息: Tomcat 和 Servlet 3.0 Web 配置
This is how it actually looks in web.xml header:
Some more info here: Tomcat and Servlet 3.0 Web Configuration