首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么反应性编程应用程序( vert.x)比单线程无锁、无阻塞的java应用程序更快?

为什么反应性编程应用程序( vert.x)比单线程无锁、无阻塞的java应用程序更快?
EN

Stack Overflow用户
提问于 2017-10-15 15:54:29
回答 1查看 2.1K关注 0票数 6

最近,我使用vert.x(基于java )测试了一个简单的HTTP服务器--我对http服务器的吞吐量和api延迟感到惊讶,它速度惊人。

http服务器的同一段代码在java应用程序上运行,具有单线程、无锁和非阻塞的特性。性能低于vert.xOne的三分之一。

我不明白的是,vert.x优于非反应性java应用程序的核心技术差异是什么?

统计数据:

使用Jmeter进行测试。在同一台机器上运行J抄表和应用程序,消耗cpu 25-50%,应用程序消耗cpu 20-30%。所有的测试都进行了5分钟。

  1. 带有一个tomcat工作线程的弹簧引导:

具有一个客户端线程轰击请求(通篇:每秒3474)的Jmeter:

具有50个客户端线程并发轰击请求(始终为每秒4285个)的Jmeter:

  1. Vert.x (基于java )只有一个垂直( http处理器垂直)-意味着只有一个处理器线程

具有一个客户端线程轰击请求(始终为每秒9382个)的Jmeter:

具有50个客户机线程的Jmeter并发地轰炸请求(贯穿始终:每秒20785):

EN

回答 1

Stack Overflow用户

发布于 2017-10-16 11:20:19

这有很多原因。

第一种方法是将单线程裸Java应用程序与Vertx (即实际多线程 )进行比较。

第二个问题是如何使用无锁数据结构。无锁并不一定意味着“在任何情况下都更快”

第三,我认为这是主要的一点,一些最好的Red开发人员为Vertx的开发做出了贡献。例如,您可以检查源代码并看到缓冲区的一些非常智能的使用。对于一个示例项目来说,从第一次尝试就超过这样的框架是有点太过期望的了。如果您对一些替代方案感兴趣,请检查拉皮迪性能,这应该与Vertx相同。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46756964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档