- 主题:粗粗测试了下, muduo和asio比起来并没有性能优势
asio只有一个要注意的点, 多线程的时候用多个io_context, 也就是说每个线程有自己的epoll对象, 这样多线程就不会有共用的数据结构了, 根本上避免了数据竞争.
asio比muduo略快.
--
FROM 52.195.2.*
没测试, 我在亚马逊的lightsail 8核心机器上, pingpong测试能用到带宽500多MB每秒, 一般也就运营商的业务需要这种速度了, 当然机器学习训练的时候对网络带宽也非常吃.
两个框架的速度差距非常小, < 5%了.
后面有时间的话, 会测试下不限制带宽的更高端机型.
同志们有现成可编译的测试代码的话, 我也会测测.
【 在 hgoldfish 的大作中提到: 】
: 这几个 cpp 的网络编程框架都太繁了。包括 libuv 也是一样。现在 java 有 virtual/green thread 以后,我在想,是不是以后用 java 写网络应用是更好的选择。
: 对了,有没有测试过 io_uring 的运行效率会不会更高?
:
--
FROM 52.195.2.*
说到写网络应用, 只要不是运营商级别和高频交易领域. scala代码会更优雅. 性能也是很够.
--
FROM 52.195.2.*
没,两台aws机器
【 在 Bernstein 的大作中提到: 】
: pingpong是不是走localhost,内存对拷啊?
【 在 KnightZorro 的大作中提到: 】
: 没测...
--
FROM 183.192.127.*
我在网上看到的是muduo作者说了,他不熟asio,用错了情有可原的,没必要太苛求
muduo作者网络编程水平极高的。至少比我高好多
【 在 speedboy2998 的大作中提到: 】
: 是的,很多人不知道每个线程单独用一个&nbsp;IO&nbsp;CONTEX ...
--
FROM 39.144.105.*
网络编程本身不简单,不是API使用的问题
【 在 weiwallz 的大作中提到: 】
: 直接调epoll,直接read write也并不需要多高的水平吧
我用asio是为了跨平台,还为了方便post lam...
--
FROM 183.192.127.*
这个io_context对象里面有个多线程访问的任务队列, 只要多个线程同时获取,就有额外的开销。
【 在 CRonaldo31 的大作中提到: 】
: 这个不太理解,多个epoll有啥好处呢,单个io_context逻辑处理上处理好数据竞争也可以啊
:
--
FROM 52.195.2.*