别再误人子弟了-tomcat、undertow、jetty性能对比_netty undertow 压力测试-程序员宅基地

技术标签: 接口  java  tomcat  linux  mysql  后端  Spring Boot从入门到精通  

在网上搜索查询发现清一色的都是说undertow高并发性能优于tomcat,并且还提供了各种实验依据以作证明,但是我私下测试发现情况和网上大部分结果并不一致。

简单接口测试

   @GetMapping("/test")
   public String test() {
       return UUID.randomUUID().toString();
  }

这是第一次测试的接口,使用jemter每秒600个线程调用这个接口。

Tomcat

Undertow

Jetty

结论

在简单接口中,发现tomcat对于cpu的占用是最低的,而且吞吐量最高。另外jetty停止测试花费了最长的时间导致吞吐量变低。

简单接口下吞吐量:tomcat>jetty>undertow

cpu:tomcat>jetty>undertow

复杂接口测试

Tomcat

Undertow

Jetty

结论

在稍复杂的接口测试下,tomcatunderwow的差距并没有很大,但是tomcat在吞吐量和cpu方面依然占据了稍小的优势,jetty与前两者存在差距。

复杂接口下吞吐量:tomcat>undertow>jetty

cpu:tomcat>undertow>jetty

从结果来看,tomcat依然是最稳定的服务器,而不是网上各种博主说的undertow更优。而jetty更适合长连接的服务,但是长连接我更倾向于选择nettyundertow更适合用于IO密集型服务器,或者文件服务器使用undertow会是一个不错的选择,但是在一般情况下还是老老实实的使用Springboot默认的tomcat吧。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq1311256696/article/details/106745650

智能推荐

增量式分级判别回归树(IHDR)|翻译与笔记_分级回归树算法(hdr)-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏4次。增量式分级判别回归树(IHDR)|翻译与笔记为什么翻译这篇发表于2007年的老论文呢?主要有以下四方面原因:(1)这篇论文较清晰地给出增量式学习的概念。(2)论文有一定的理论与应用方面的价值。(3)论文的作者仍处于活跃状态,阅读前面的工作有助于理解最新的工作。(4)经过一轮改换,感觉亲近些,读自己翻译的文本更容易理解些。以下是译文,笔记会以斜体字显示。[1] J. Weng, ..._分级回归树算法(hdr)

面试进行曲之技术面试(项目经验)_面试 项目经验怎么说-程序员宅基地

文章浏览阅读242次。面试进行曲之技术面试(项目经验)在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐!好的简历才能让你获得面试的机会!(点击简历,获取100份简历模板下载方式) 我们还针对面试列出了j2ee方面的知识点!不管是笔试还_面试 项目经验怎么说

Recursive sequence 矩阵快速幂 + 组合数 非线性变线性,利用到了组合数(杨辉三角求解快)_非线性矩阵快速幂-程序员宅基地

文章浏览阅读936次。Recursive sequenceTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionFarmer John likes to play mathematics games with his N cows._非线性矩阵快速幂

MYSQL将某个字段按逗号切分开多条数据_mysql逗号隔开拆成多条数据-程序员宅基地

文章浏览阅读6.9k次,点赞7次,收藏17次。自己记录一下:会议表(rsgl_hygl_hyxx)里面有一个参会人员字段(ch_ry_mc),存放的是人员表id(数据形式如:123,234,567,789),我需要将某个会议的参会人员字段按逗号拆分开多条数据。举个例子:某条会议数据的相关字段如下:我要实现的结果如下:实现代码:select a.id as hyId,substring_index( substring_index( .._mysql逗号隔开拆成多条数据

MongoDB用户和身份验证_queryfailure flag was true (response was { "$err" -程序员宅基地

文章浏览阅读4.3w次。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。这里推荐一个快速入门教程 - 8天学通 MongoDB,写的很全面。这里讨论的是 MongoDB 的用户和身份验证。在默认情况下,MongoDB 不会进行身份验证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,如果你在一个面向公众的服务器上使用它,那么这的确是一个问题。作为..._queryfailure flag was true (response was { "$err" : "not authorized for quer

随便推点

Flask Web开发:基于Python的Web应用开发实战_flask web开发:基于python的web应用开发实战 脚本之家-程序员宅基地

文章浏览阅读5.2k次。 《Flask Web开发:基于Python的Web应用开发实战》 虽然简单的网站(Flask+Python+SAE)已经上线,但只是入门。开发大型网站,系统地学习一遍还是有必要的。20161018: 实际应用网站上线,实现天涯VIP功能:http://tianya.heroku.com 1 虚拟环境 2016-6-8书上介绍了 virt..._flask web开发:基于python的web应用开发实战 脚本之家

Android进阶非常好的一种方式-程序员宅基地

文章浏览阅读1.1k次。前言: 2011年11月份我开始学习android软件开发(本人有良好的java基础、web开发基础、c++基础),2011年12月份开始开发第一款手机软件(软件名字就不透露了),2012年1月份第一款android应用在优亿、机锋、木蚂蚁正式上线。 2012年2月份,本人陆续又开发了3款手机应用,并且各个应用也逐渐发布到了更多的市场,如应用汇、91、腾讯应用中心、163应

编写10个线程,第一个线程从1加到10..._创建一个线程实现从1加到10-程序员宅基地

文章浏览阅读1.6w次,点赞4次,收藏17次。11、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。public class Accumulator extends Thread { private int stratNum; public static int sum; public Accumulator(int startNum) { this.s_创建一个线程实现从1加到10

IDEA使用手册之 web项目DeBug调试_ideal调试本地web项目-程序员宅基地

文章浏览阅读7k次,点赞2次,收藏18次。**IDEA使用手册之 web项目DeBug调试**1.点击debug调试按钮,开始运行web工程2.启动成功3.设置断点4.通过浏览器发送请求5.请求发送之后会自动跳到断点处,并且在断点之前会有数据结果显示1.点击debug调试按钮,开始运行web工程2.启动成功3.设置断点代码左边空白处用鼠标点击添加断点, 再次点击会取消断点4.通过浏览器发送请求5.请求..._ideal调试本地web项目

ESLint 报 ‘require‘ is not defined no-undef_require' is not defined.eslintno-undef-程序员宅基地

文章浏览阅读7.6k次,点赞7次,收藏7次。项目中在 .vue 文件中直接使用 node.js 语法可能会报 ESLint 报错需要修改下 eslint 的配置,一般 eslint 配置文件为 .eslintrc.js// .eslintrc.jsmodule.exports = { env: { node: true // 只需将该项设置为 true 即可 }, //此处省略其他配置};..._require' is not defined.eslintno-undef

Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)_新线程启动后系统会自动调用-程序员宅基地

文章浏览阅读402次。线程概述在应用程序中,不同的程序块是可以同时运行的,这种多个程序块同时运行的现象被称作并发执行。多线程可以使程序在同一时间内完成很多操作。多线程就是指一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程进程Process在一个操作系统中,每个独立执行的程序都可称之为一个进程,也就是“正在运行的程序”。线程Thread一个程序至少有一个进程,一个进程至少有_新线程启动后系统会自动调用

推荐文章

热门文章

相关标签