boost.asio评价(别人说的)

说boost::asio慢的人有两种
1. extreme geek,那把锁就像眼中钉肉中刺一样折磨着他们,不过这种情况下,本来也不要指望三方库,os api才是最好的选择
2. 不会用的,没用好的。我本人近五年的所有项目都用了boost::asio,看过的例子自然更多,至今不敢说和理解这个库的设计思想沾个边。踩过很多坑,但是最终项目都是成功的,至少性能瓶颈从来不在asio,其中一个项目是纯c++的web服务,当然用c++是因为很多原因的综合考虑,我并不鼓励完全使用c++作为web后台,即便使用各种三方库,开发效率依然低的感人。但是实际上运行效率完全不比nginx差。ioservice从来没人说过只能有一个,多大的体量才能blame到那把锁上,实际工程项目,有这个体量的站出来我看看。这个世界上95%的项目如果出现性能问题,唯一的解释就是码农自己写屎了,别把锅都让库来背。asio确实不是最好的,也不是优美的,但是能解决绝大部分实际问题,那就是个好库。
 
 
可以对比对比libuv和asio,一个纯c单线程事件库,一个c++多线程事件库。我认为是这么理解的。也没人说libuv性能不好,为啥非要说asio坏话?可能因为它的确代码不友好吧。
 

我来插一句:asio 写起来确实不容易,但是,如果你让一个有经验的 C++ 程序员封装一个跨平台的异步网络库,同时兼顾功能、性能、资源管理、多线程等,他很可能会跟 asio 走一样的路,而且不一定有 asio 走得好。

原因是,选择异步模型是为了性能,为了高并发,为了 C10K 问题(否则干嘛不写同步模型);而这些问题缠绕在一起本来就是难题,写出来的代码也就复杂了,你不能指望把这些交给一个新手分分钟搞定吧?用任何库?


 

posted on   lydstory  阅读(723)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-12-08 google v8
2019-12-08 python gyp
2019-12-08 centos depot_tools安装
2019-12-08 音响音效
2019-12-08 云科凯创
2019-12-08 北京仁聚汇通
2019-12-08 防窜货

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示