免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lims_xlh
打印 上一主题 下一主题

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

论坛徽章:
0
11 [报告]
发表于 2015-06-02 15:10 |只看该作者
回复 9# hellioncu

恩,我说的可能是不太清楚,我指的是前端访问mysql 速度跟 访问代理速度的对比。
   

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
12 [报告]
发表于 2015-06-02 15:35 |只看该作者
我用过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
13 [报告]
发表于 2015-06-02 15:41 |只看该作者
回复 10# lims_xlh

每线程一个io_service还会有什么争用呢?瓶颈肯定不在这里,拿一个io_service给8个线程共享也没有太明显的瓶颈。

我的问题是你写了个程序做mysql代理,这个代理怎么可能比mysql更快呢?它自己再快还不得卡在mysql那头?

论坛徽章:
0
14 [报告]
发表于 2015-06-02 15:53 |只看该作者
本帖最后由 lims_xlh 于 2015-06-02 16:00 编辑

回复 13# windoze


    举个例子:
    假设有个两个模型:
    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

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
15 [报告]
发表于 2015-06-02 15:59 |只看该作者
lims_xlh 发表于 2015-06-02 15:53
回复 13# windoze


瓶颈不在于短连接,这种优化理由不科学。

论坛徽章:
0
16 [报告]
发表于 2015-06-02 16:12 |只看该作者
回复 15# linux_c_py_php
短连接可以减少mysql的压力


   

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
17 [报告]
发表于 2015-06-02 16:33 |只看该作者
回复 15# linux_c_py_php


    Hi~ 好久没看到你了哈= =

最近做了一个C/C++11的网络库,在这里:https://github.com/starwing/znet

帮我review下?

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
18 [报告]
发表于 2015-06-02 17:20 |只看该作者
本帖最后由 yulihua49 于 2015-06-02 17:21 编辑
lims_xlh 发表于 2015-06-02 11:59
大家有在商业项目用过asio吗,性能怎么样,我们项目中用的asio感觉性能不怎么样啊,跟asio底层队列的锁有关 ...

我从来不认为ASIO能有多少性能。主要是在少线程系统,应对大量客户端(任务),减少线程无谓的等待,利用这段时间为别的任务服务,可以改善客户体验(减少平均响应时间)。
性能嘛,只能说还可以。

论坛徽章:
0
19 [报告]
发表于 2015-06-02 17:41 |只看该作者
回复 18# yulihua49
那这样的话对于整个系统的平均时延也是应该降低的把,因为可以在用户空间最大限度的利用cpu做更多的事情吧,
但是我代理平均时延也没跑过mysql,用valgrind也没看出有什么地方有瓶颈。

   

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
20 [报告]
发表于 2015-06-02 19:25 |只看该作者
本帖最后由 yulihua49 于 2015-06-02 19:27 编辑
lims_xlh 发表于 2015-06-02 17:41
回复 18# yulihua49
那这样的话对于整个系统的平均时延也是应该降低的把,因为可以在用户空间最大限度的利 ...

不清楚sql代理的过程。
我是在文件传输+交易混合服务器系统。
一个或几个任务传输大文件,SIO就会长时间占死线程,其它交易请求被耽误,响应时间极长。使用ASIO后,不管多少个任务在传输文件,交易请求都会立即响应。
但是对于传输文件的任务,它的时间肯定变长了。
如果计算混合任务的平均响应时间,肯定大大缩短了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP