免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 10573 | 回复: 32

[C++] 谁在商业上面上用过asio,性能怎么样? [复制链接]

论坛徽章:
0
发表于 2015-06-02 11:59 |显示全部楼层
本帖最后由 lims_xlh 于 2015-06-02 17:05 编辑

大家有在商业项目用过asio吗,性能怎么样,我们项目中用的asio感觉性能不怎么样啊,跟asio底层队列的锁有关系吗

    举个例子:
    假设有个两个模型:
    A  client-->mysql
    B  client-->proxy-->mysql
    1)A,B都是接收m个连接,并且接收n个sql
    2)mysql 建立一个thread需要x 毫秒, 执行一个sql的逻辑过程y毫秒,sql在代理内的执行时间z毫秒
    对于只是用mysql的的情况来说:
    mysql需要针对m个连接建立m个线程,并且执行n个sql,所以时间应该是mx+yn毫秒
    但是对于代理来说,mysql的连接是早就建立好了的长连接,所以这块的耗时忽略,他的时间是:
    mysql执行n个sql的时间 和 n个sql在代理内部业务逻辑的时间:ny+nz
    所以那个时间快慢就是取决于mx 和 nz的大小了。
    在并发量特别高的情况下,m会特别大,但是每个连接都执行有限的sql,n特别小,这时候mx>nz
但是我的代理还是没跑过mysql,从理论上看应该是z特别大。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2015-06-02 12:09 |显示全部楼层
本帖最后由 fender0107401 于 2015-06-02 12:09 编辑

我在半生产环境用过,感觉挺好,但是我这边对asio的压力比较低。

论坛徽章:
0
发表于 2015-06-02 12:20 |显示全部楼层
你是什么场景,我这边是搞了一个mysql的代理,asio+coroutine的,效果不是太理想,在并发比较低的情况下比mysql快不了多少

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2015-06-02 13:07 |显示全部楼层
回复 3# lims_xlh

我这边是cs构建的一个小系统,服务器端和客户单用asio进行各种通信,通信的频率不高。
   

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2015-06-02 13:57 |显示全部楼层
回复 3# lims_xlh

mysql代理在什么情况下能比mysql快呢?

论坛徽章:
0
发表于 2015-06-02 14:17 |显示全部楼层
boost.asio应该性能因该不错吧,百度有个开源库sofa-pbrpc,内部用asio实现。据说在百度内部广泛使用。

论坛徽章:
0
发表于 2015-06-02 14:58 |显示全部楼层
回复 5# windoze


    应该是大并发的情况吧:因为代理有socket复用,但是mysql是一个连接一个线程,大并发的情况代理应该是快的。

论坛徽章:
0
发表于 2015-06-02 15:01 |显示全部楼层
回复 6# longshadian


   多谢,看一下他的实现

论坛徽章:
317
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2015-06-02 15:08 |显示全部楼层
lims_xlh 发表于 2015-06-02 14:58
回复 5# windoze


我想他问你应该是认为两者不是一码事,怎么比较

论坛徽章:
0
发表于 2015-06-02 15:08 |显示全部楼层
回复 5# windoze

看了下asio代码,我是一个线程一个io_service,每个线程应该是一个op队列,应该不会有锁的争用问题,不知道那个地方用的不对?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP