首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
Gitee
资讯
专区
问答
活动
软件库
Tool
博客
众包
OSCHINA 小程序 ——
关注技术领域的头条文章
聚合全网技术文章,根据你的阅读喜好进行个性推荐
登录
注册
Netty与Voovan并发性能对比
Voovan 和 Netty 都是已 socket 通信作为核心的通信框架.这里我们对 Voovan 和 Netty 做一个性能对比的测试,同时我们对编码也进行对比,来看看两款框架有什么神奇的区别
作者:
Voovan
Netty与Voovan并发性能对比
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
请
请输入昵称呢呢
2018/07/09 14:54
引用来自“beykery”的评论
引用来自“光的笔记”的评论
开源项目受到质疑是常有的事情的,作者继续努力👍
我不太肯定你说的是什么意思。你鼓励作者继续努力没错,谁都需要努力。我的意思是,你没必要这样说,我只是在进行纯粹的技术讨论,不需要你说什么受到质疑请继续努力,这都是没有意义没有力量的屁话。
你可以申辩说你们是在进行讨论,但在我看来,你们其实不是在做讨论,因为讨论是会有核心议题的,很显然你们没有,所以说是质疑。当然质疑本身这并没有错。现在回到源头,在开源中国对开源作者进行留言鼓励,算是基本的礼貌,我不太明白鼓励作者为啥也会让你如此激动到喷脏话?凡是不同意你观点的,你都要这样?
回复
举报
beykery
2018/07/04 16:55
引用来自“光的笔记”的评论
开源项目受到质疑是常有的事情的,作者继续努力👍
我不太肯定你说的是什么意思。你鼓励作者继续努力没错,谁都需要努力。我的意思是,你没必要这样说,我只是在进行纯粹的技术讨论,不需要你说什么受到质疑请继续努力,这都是没有意义没有力量的屁话。
回复
举报
请
请输入昵称呢呢
2017/12/15 08:55
开源项目受到质疑是常有的事情的,作者继续努力👍
回复
举报
beykery
2017/07/18 22:31
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Voovan
2017/07/17 23:26
我们完全不在一个频道,socket出入都是流操作关于流的特性这些基本的东西我就不解释了,如果你其他地方需要就需要自己想办法存起来,和这个非堆内存的缓冲有什么关系呢?,非堆内存的管理风险很高,没有任何框架会以牺牲稳定性为代价将非堆内存暴露给用户的,如果用户自己想用就需要用户自己管理
回复
举报
beykery
2017/07/17 23:15
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Voovan
2017/07/17 19:19
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
beykery
2017/07/17 18:45
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Voovan
2017/07/01 05:53
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
Voovan
2017/07/01 04:47
引用来自“jackygurui”的评论
为啥在你的框架里面的返回的值是以实例的字段responseStr来记录的,然而在netty的测试中是在请求代码里?这样不是每次请求里都要初始化一次?虽然java有string pool,但这样还是会对比较产生影响啊。
还有为什么要ctx.alloc()这种明显影响性能的用法而不是采用通常从bytebuf池里面获取?
关于第一个点确实是我的失误, 已修正, 经过重新测试确实如你所说在性能上并没有什么明显的变化. Netty 和 Voovan 的测试结果相互领先的情况均有发生.
关于第二点,你可以用 debug 查看一下, 通过 ctx.alloc() 方法获得的是一个 PooledByteBufAllocator 对象,而这个对象就是用来分配bytebuf池中非堆内存的,所以通过ctx.alloc().buffer(retVal.length());的方式实际上是从bytebuf池中获取的 bytebuf.我在 blog 中更新了,我 debug 时的截图.
回复
举报
j
jackygurui
2017/06/30 22:35
为啥在你的框架里面的返回的值是以实例的字段responseStr来记录的,然而在netty的测试中是在请求代码里?这样不是每次请求里都要初始化一次?虽然java有string pool,但这样还是会对比较产生影响啊。
还有为什么要ctx.alloc()这种明显影响性能的用法而不是采用通常从bytebuf池里面获取?
回复
举报
沧海一刀
2017/06/21 10:30
顶
回复
举报
beykery
2017/06/16 08:51
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
熏红基
2017/06/15 09:45
再来一个与t-io的并发测试对比吧。
回复
举报
Voovan
2017/03/07 19:30
引用来自“BoXuan”的评论
既然是并发,就应该开启netty适合并发的模式,netty的线程池分为解包封包线程池和业务线程池,你这边涉及到数据发送就属于业务范畴,就应该开启业务线程池,你开启后再测试吧,只有了解全面才能发表博客评论,不然就是误导别人,发博客之前还是多丰富一下自己知识,慎重点好
创建ServerBootstrap时我这边用了两个线程池,创建了两个NioEventLoopGroup线程池,一个叫bossGroup,一个叫workGroup。《Netty权威指南》里提到bossGroup是用来处理TCP连接请求的 (也就是Accept),workGroup是来处理IO事件,也就是(connect\recive 等等事件),代码只是需要简单的发送数据并不解释处理请求报文,也就是说不需要解包和封包,不存在阻赛的情况,为何还要单独在开一个线程来处理业务呢?,另外不太清楚你说的业务线程是什么?
最后,你的说法和《Netty权威指南》里的解释也大相径庭。
如果是我理解有问题,还请指教。
回复
举报
kakai
2017/03/07 18:57
既然是并发,就应该开启netty适合并发的模式,netty的线程池分为解包封包线程池和业务线程池,你这边涉及到数据发送就属于业务范畴,就应该开启业务线程池,你开启后再测试吧,只有了解全面才能发表博客评论,不然就是误导别人,发博客之前还是多丰富一下自己知识,慎重点好
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
请
j
推荐博客
国庆中秋特别漫画:小哪吒猫助力大平台工程
Zadig云原生交付
·
09/30 15:42
0 评论
PostgreSQL 16 正式登场,拓数派代码贡献揭示中国顶尖技术实力
OpenPie
·
09/28 16:10
0 评论
What's new in Pika v3.5.1
dubbo-go开源社区
·
09/28 14:10
0 评论
Java 21 新特性:虚拟线程(Virtual Threads)
程序猿DD
·
09/28 10:38
0 评论
百度交易中台之内容分润结算系统架构浅析
百度Geek说
·
09/28 10:36
1 评论
GaussDB数据库SQL系列-自定义函数
Gauss松鼠会
·
09/28 10:35
0 评论
Databend 源码阅读:配置管理
Databend
·
09/28 09:46
0 评论
【AIGC】只要10秒,AI生成IP海报,解放双手!!! | 京东云技术团队
京东云开发者
·
09/28 09:46
0 评论
【稳定性】秘密武器--功能开关技术 | 京东物流技术团队
京东云开发者
·
09/28 09:36
0 评论
Dubbo源码浅析(一)—RPC框架与Dubbo | 京东云技术团队
京东云开发者
·
09/28 09:23
0 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
引用来自“beykery”的评论
引用来自“光的笔记”的评论
开源项目受到质疑是常有的事情的,作者继续努力👍
引用来自“光的笔记”的评论
开源项目受到质疑是常有的事情的,作者继续努力👍
引用来自“jackygurui”的评论
为啥在你的框架里面的返回的值是以实例的字段responseStr来记录的,然而在netty的测试中是在请求代码里?这样不是每次请求里都要初始化一次?虽然java有string pool,但这样还是会对比较产生影响啊。还有为什么要ctx.alloc()这种明显影响性能的用法而不是采用通常从bytebuf池里面获取?
关于第二点,你可以用 debug 查看一下, 通过 ctx.alloc() 方法获得的是一个 PooledByteBufAllocator 对象,而这个对象就是用来分配bytebuf池中非堆内存的,所以通过ctx.alloc().buffer(retVal.length());的方式实际上是从bytebuf池中获取的 bytebuf.我在 blog 中更新了,我 debug 时的截图.
还有为什么要ctx.alloc()这种明显影响性能的用法而不是采用通常从bytebuf池里面获取?
引用来自“BoXuan”的评论
既然是并发,就应该开启netty适合并发的模式,netty的线程池分为解包封包线程池和业务线程池,你这边涉及到数据发送就属于业务范畴,就应该开启业务线程池,你开启后再测试吧,只有了解全面才能发表博客评论,不然就是误导别人,发博客之前还是多丰富一下自己知识,慎重点好最后,你的说法和《Netty权威指南》里的解释也大相径庭。
如果是我理解有问题,还请指教。