Jetty Tomcat与Dropwizard性能比较

Jetty Tomcat与Dropwizard性能比较,jetty,tomcat7,dropwizard,Jetty,Tomcat7,Dropwizard,我一直在为dropwizard应用程序测量性能。我使用apachebench来比较性能 为了简单起见,我创建了两个应用程序,一个是dropwizard(main方法和one-GET资源),另一个是tomcat应用程序,doGet方法只返回“OK”。这两个应用程序都没有执行任何操作,因此内存不是性能因素 Tomcat和dropwizard中的所有服务器参数都是默认值。我没有进行任何性能调整 我在不同的机器上运行服务器和apache bench(都是windows I-5 4 core 8GB) 当

我一直在为dropwizard应用程序测量性能。我使用apachebench来比较性能

为了简单起见,我创建了两个应用程序,一个是dropwizard(main方法和one-GET资源),另一个是tomcat应用程序,doGet方法只返回“OK”。这两个应用程序都没有执行任何操作,因此内存不是性能因素

Tomcat和dropwizard中的所有服务器参数都是默认值。我没有进行任何性能调整

我在不同的机器上运行服务器和apache bench(都是windows I-5 4 core 8GB)

当我运行apachebench时,我得到了截然不同的结果

用于tomcat应用程序

并发级别:5

测试所用时间:2.000秒

完成申请:7000

失败的请求:0

写入错误:0

传输总量:861000字节

传输的HTML:14000字节

每秒请求数:3499.97[#/sec](平均值)

每次请求的时间:1.429[ms](平均值)

每个请求的时间:0.286[ms](所有并发请求的平均时间) (请求)

传输速率:接收到420.41千字节/秒

和用于dropwizard应用程序

并发级别:5

测试时间:6.444秒

完成申请:7000

失败的请求:0

写入错误:0

传输总量:1197000字节

传输的HTML:14000字节

每秒请求数:1086.28[#/秒](平均值)

每次请求的时间:4.603[ms](平均值)

每个请求的时间:0.921[ms](所有并发请求的平均时间) (请求)

传输速率:收到181.40[千字节/秒]

在此之后,我尝试修改性能调优参数,如maxThreads、maxConnections for dropwizard。但是对于相同的测试(并发性5),吞吐量仍然没有太大变化

现在的问题是,tomcat处理输入请求的方式和dropwizard(底层Jetty)处理输入请求的方式是否有重大区别

一个观察结果是,从dropwizard传输的字节数远远超过了从tomcat传输的字节数。从ApacheBench打印详细的输出,这表明正在添加额外的头,例如vary:accept-encoding。我不确定传输更多字节是否会导致响应时间变慢,进而导致吞吐量降低


请分享您的想法

对于ServerExchange来说,这似乎是一个更好的问题。StackOverflow用于编程问题。您好,谢谢您的帮助。。。您能否澄清tomcat应用程序是基于什么堆栈构建的。它是一个spring/spring启动应用程序,带有相关的堆栈还是其他东西?谢谢。这不是一个spring应用程序。只是简单的dropwizard应用程序。Tomcat应用程序是一个简单的servlet。我认为这不是一个公平的比较。Tomcat是一个servlet容器,而dropwizard是一个构建web服务的框架。与Tomcat相当的是dropwizard中捆绑的Jetty servlet容器。为了进行公平的比较,您需要为tomcat编写一个与dropwizard功能相匹配的webapp,如Jackson、Jersey和其他。