z****e 发帖数: 54598 | |
W***o 发帖数: 6519 | 2 最近看了一下vert.x 试着玩了一下udp,感觉不错。但是感觉Go的udp更好用一些,而
且concurrency是强项
【在 z****e 的大作中提到】
|
z****e 发帖数: 54598 | 3
quasar
【在 W***o 的大作中提到】 : 最近看了一下vert.x 试着玩了一下udp,感觉不错。但是感觉Go的udp更好用一些,而 : 且concurrency是强项
|
z****e 发帖数: 54598 | 4 另外,udp的节省就要有意义
如果随意打断的话,就没有意义了
我用udp还是用eventloop和worker模式
worker负责发,eventloop负责收
收发分离之后,基本上就能满足pvp的需要了
收无所谓,因为收发分离,所以发可以用一个worker thread循环发送
这样能够保证每33ms发送一次数据包
16ms在路上,最后16ms左右renderring
差不多可以搞定,如果收发不分离
无论如何,都会吃掉一定性能
如果这样的话,还不如不用sync方式,回去用tcp好了
所以我不用quasar |
z****e 发帖数: 54598 | 5 quasar和go其本质上感觉都跟传统的tomcat一样
我并不看好这种模式的效率
实际上从techempower给出的benchmark看
https://www.techempower.com/benchmarks/#section=data-r11&hw=ec2&test=
plaintext
这种方式实际执行起来,效率还不如servlet(jetty)
那用了干什么?没有淫荡,你要想节省效率,你就需要思考你在做什么
一般过于傻瓜的方式,都有代价 |
z****e 发帖数: 54598 | 6 不要为了udp而udp
我用udp是不怕丢包
之前跟dumbcoder讨论过为啥要用udp
不要为了装逼去用udp
一般的web还是去用http吧
json简单太多,干活足够
udp我直接一个byte一个byte处理
这种太过于底层,不要没事找事,而且不安全,也不稳定
我用udp基本上是把安全,稳定什么全部丢掉,以保证速度
在任何时候只在乎最后一帧的数据,之前数据全部作废
记得以前打星际,联机,第一件事就是把tcp改成udp,以保证速度
但是这个绝对不apply到很多领域,比如website
还有如果是钱的交易,我一定会上tcp,而且极有可能上https
另外就是vert.x在一些领域优势很明显,比如android上代码的复用
app和server可以直接重用同样的代码 |
z****e 发帖数: 54598 | 7 thread vs event
如果想要快,就用event,你要很清楚自己在做什么
另外不要让引擎拖了后退,js等脚本引擎很慢
jvm(hotspot)等要快不少
go,quasar本质上都还是thread pool
只不过是lightweight thread pool
tomcat,jetty,undertow这些是heavyweight thread pool
看你托管在什么层次上了,这种怎样都会慢
因为本质上还是thread pool嘛,就像是自动档
要想快,就用手动档
因为33ms这个高压线压着,不得不牺牲所有的其它东西
比如稳定性,安全这些,没办法了,所以用了udp和event
但是涉及到钱的部分,那肯定还是tcp了,这个时候可以用thread
所以需要一个能够在不同模式中自由切换的工具
vert.x很好滴address了这个问题,它什么都支持
而且给了我足够多的选择,我讨厌别人替我做选择
因为我总发现别人选的比我糟糕,所以还是不听别人的比较好 |