引言
t-io和netty的差别,这是个被大量问及的问题,在此,作为t-io作者,列一些差异化的货色
t-io的最大劣势
API设计易懂,尽量避免引入借鉴概念——最大限度升高学习老本
接管了大量业务资源的绑定与主动解绑,开发人员只须要无脑地调用API即可实现绑定与解绑性能,这个解决如果丢给业务开发人员是极其简单易错的:

多线程环境下的汇合治理都是要同步平安的,同步的设计既要平安又要高效一是容易遗记开释资源从而导致OOM,二是容易遗记加锁或是加了死锁从而导 致零碎假死其它同类框架为何以各种理由回避实现这些性能?    和业务挂钩的都不好形象    会耗费框架性能    简单易错

内置了丰盛的易用的API,开发人员一个办法就能搞定很多业务事件
提供了生产级别的showcase示范工程

有教训的开发人员稍事批改即可用在生产环境没教训的开发人员能够当作入门的示范代码

文档集中在官网,用户不须要到处学习无用的、谬误的文档——进一步升高学习老本和试错老本
netty的最大劣势
大量私有协定的实现
大量基于netty的高层框架
其它比照
netty有大量私有协定的实现,t-io官网目前提供的仅有http和websocket
netty用到了零拷贝,这一点t-io在平衡再三之后,放弃了零拷贝,起因如下:
零拷贝只是改善性能的伎俩(或叫算法),对用户而言,框架采纳什么算法并不重要,重要的是最终的目标是否达成——netty用零拷贝来改善性能,t-io借鉴同步平安线程池来改善性能,都是伎俩,必由之路。

零拷贝在缩小拷贝过程的同时,也耗费了计算机其它资源堆外资源的治理势必减少t-io代码的复杂度,使t-io用户难以在源代码层驾驭t-io局部同类框架引入堆外资源管理后,在某些场景确实是晋升了性能,但这个过程也减少了很多重大BUGt-io的性能曾经足够好,把精力花在服务业务上,而不是性能PK场上

t-io借鉴了同步线程池,正是有了这个,t-io外部调度线程时就显得尤为简略,与netty的零拷贝一样,这也是改善性能与简化编程的伎俩,而不是最终目标。
t-io内置了业务数据管理能力,这是个十分重要的能力,网络编程数据绑定和开释是件极其考验开发人员程度的性能,哪怕是经验丰富的资深开发工程师也极容易死锁和OOM,甚至因而导致整个我的项目的失败。

举例一:你做im,你要做群组与群员关系映射吧?在t-io中,您只须要Tio.bindGroup()即可实现tcp连贯和这个群组关系的绑定举例二:点对点音讯,你要针对用户id发消息吧?在t-io中,您只须要Tio.bindUser()即可实现tcp连贯和user的关系绑定通过Tio.bindXxx()绑定的业务资源,不必放心TCP连贯断开后资源开释不掉,t-io领有严格的算法保障这些资源失去疾速有序地开释(不得不揭示:开释资源波及到多线程操作,极易出错)!

netty有大量书籍可供查阅;t-io提供了领有即战力的showcase工程( 付费文档用户可下载最新版 ),用户并不需要太多工夫即可实现可用于生产我的项目的网络编程脚手架
t-io和netty的编程模型和API差别极大

t-io的API设计更多的是让工程师用起来难受,所以特意减少了一个Tio.java,专门搁置罕用的API,这样用户找起来就十分不便,不必满大街找办法调用netty的局部API是把设计模式裸露进去了,让内行人一看就晓得这是个什么设计模式做的

在性能测试上的差别

在TFB平台上,netty的性能远超t-io,当然t-io的性能排名仍然非常靠前,排在t-io前面的大有人在(t-io当初的性能比刚进去时的t-io差了很多,因为业务数据管理能力、阻塞发送能力、同步发送能力、流量监控与回调,是比拟耗费性能的),请参考:TFB性能PK平台带上业务进行PK时,t-io性能常常优于netty,这其中的起因大略就是:用netty须要本人写代码实现业务数据的治理、流量监控等工作,而这些工作拖了裸netty的后腿,而这些工作曾经被t-io内置了,所以给t-io带来的性能损耗就很无限,请参考 netty和t-io比照测试后果

t-io提供了极其便捷的阻塞发送、同步发送,这些能力在netty中貌似没有,须要用户写较多的代码能力实现

阻塞发送:音讯发送到对方后,才往下执行代码同步发送:对方收到音讯,并回了同样的synSeq音讯,才往下执行代码

易学水平:从市场反馈来看,t-io设计的概念仿佛更容易被工程师们所了解与承受,2014年老板想让我用netty,所以简略地看过《netty权威指南》,这本书是我放弃netty的最初一根稻草,真的看不太懂,提供的示例我很难将其用在生产我的项目中(实在感触,当然兴许是我太菜,我另一个十分优良且年老的共事也看过这本书,同样示意云里雾里)
不少用户在抉择时,感觉t-io文档没有netty多,转而投netty,实际上,一个好框架,并不需要太多的文档,t-io在刚进去时,只有几个showcase工程,第一批t-io用户用这些showcase就实现了本人的我的项目,并且口碑迅速散开。当初t-io官网曾经提供了绝对残缺的文档,再配上含金量十足的showcase工程,应用t-io曾经很容易了
如果已经应用过netty或mina,再来应用t-io,兴许你会感觉到前所未有的爽!
具体请参考: https://www.tiocloud.com/doc/...