zoukankan      html  css  js  c++  java
  • muyu::asio 网络库开发(二)

    经过2个星期的开发,我的muyu::asio网络库终于初步成形了。
    虽然最近这几天的调优没有取得我想要的效果,但也可以轻松一点了。

    今天一边在看IOCP的资料,一边在公司的测试环境里做了测试,

    对比 muyu::asio,boost::asio,muduo,和Nginx。
    用muyu::asio做了简单的http server用于测试,代码类似boost::asio的http server例程
    boost::asio的测试代码是官方的例程http server 2 和 http server 3。(做了简单修改,不读文件,直接取内存数据)
    muduo的测试例程是其自带的http server,分别用了muduo 0.2.9版 和 muduo 0.3.4版
    Nginx的版本是1.0.14,  配置是:worker_processes  5; use epoll;worker_connections  1024; 
     
    测试工具:webbench-1.5  
    测试命令: ./webbench -c 500 -t 300 http://192.168.8.105:xxxx/
     
    测试结果如下:
    muyu::asio  http server 1: 8个io_service, 每个io_service配1个工作线程
    第一次测试:
    Speed=996475 pages/min, 2541009 bytes/sec.
    Requests: 4982372 susceed, 3 failed.
    第二次测试:
    Speed=997619 pages/min, 2543928 bytes/sec.
    Requests: 4988094 susceed, 1 failed.
    第三次测试:
    Speed=988426 pages/min, 2520488 bytes/sec.
    Requests: 4942134 susceed, 0 failed.
    第四次测试:
    Speed=1009362 pages/min, 2573870 bytes/sec.
    Requests: 5046805 susceed, 6 failed.
     
    muyu::asio  http server 2: 8个io_service, 每个io_service配300个工作线程
    第一次测试:
    Speed=919767 pages/min, 2345405 bytes/sec.
    Requests: 4598834 susceed, 4 failed.
    第二次测试:
    Speed=935779 pages/min, 2386232 bytes/sec.
    Requests: 4678891 susceed, 6 failed.
    第三次测试:
    Speed=916277 pages/min, 2336505 bytes/sec.
    Requests: 4581383 susceed, 6 failed.
    第四次测试:
    Speed=949439 pages/min, 2421061 bytes/sec.
    Requests: 4747183 susceed, 13 failed.
     
    boost::asio 例程http server 2:one io_service per CPU,8个io_service,每个io_service一个工作线程
    第一次测试:
    Speed=836536 pages/min, 1965858 bytes/sec.
    Requests: 4182678 susceed, 4 failed.
    第二次测试:
    Speed=834559 pages/min, 1961211 bytes/sec.
    Requests: 4172791 susceed, 5 failed.
    第三次测试:
    Speed=833176 pages/min, 1957962 bytes/sec.
    Requests: 4165879 susceed, 2 failed.
    第四次测试:
    Speed=842093 pages/min, 1978916 bytes/sec.
    Requests: 4210463 susceed, 2 failed.
     
    boost::asio 例程http server 3:1个io_service, 线程池有2000个线程
    第一次测试:
    Speed=736949 pages/min, 1731823 bytes/sec.
    Requests: 3684734 susceed, 11 failed.
    第二次测试:
    Speed=745930 pages/min, 1752929 bytes/sec.
    Requests: 3729638 susceed, 15 failed.
    第三次测试:
    Speed=744610 pages/min, 1749827 bytes/sec.
    Requests: 3723038 susceed, 15 failed.
    第四次测试:
    Speed=745392 pages/min, 1751667 bytes/sec.
    Requests: 3726951 susceed, 9 failed.
     
    muduo 0.3.4版 http server:8个线程
    第一次测试:
    Speed=821217 pages/min, 2627890 bytes/sec.
    Requests: 4106081 susceed, 7 failed.
    第二次测试:
    Speed=805267 pages/min, 2576846 bytes/sec.
    Requests: 4026322 susceed, 17 failed.
    第三次测试:
    Speed=793357 pages/min, 2538725 bytes/sec.
    Requests: 3966760 susceed, 28 failed.
    第四次测试:
    Speed=786347 pages/min, 2516284 bytes/sec.
    Requests: 3931697 susceed, 41 failed.
     
    muduo 0.2.9版 http server:8个线程
    第一次测试:
    Speed=734277 pages/min, 342661 bytes/sec.
    Requests: 3671372 susceed, 17 failed.
    第二次测试:
    Speed=715121 pages/min, 333722 bytes/sec.
    Requests: 3575597 susceed, 11 failed.
    第三次测试:
    Speed=734941 pages/min, 342971 bytes/sec.
    Requests: 3674695 susceed, 10 failed.
    第四次测试:
    Speed=746123 pages/min, 348189 bytes/sec.
    Requests: 3730602 susceed, 13 failed.
     
    Nginx 1.0.14版
    第一次测试:
    Speed=801993 pages/min, 4838681 bytes/sec.
    Requests: 4009957 susceed, 9 failed.
    第二次测试:
    Speed=809194 pages/min, 4882131 bytes/sec.
    Requests: 4045967 susceed, 5 failed.
    第三次测试:
    Speed=794093 pages/min, 4791025 bytes/sec.
    Requests: 3970463 susceed, 6 failed.
    第四次测试:
    Speed=805570 pages/min, 4860269 bytes/sec.
    Requests: 4027848 susceed, 5 failed.
     
    从测试结果看,我的muyu::asio胜过boost::asio;muduo网络库对短连接的支持有所改善。
    下周开始开发muyu::asio的IOCP部分。
  • 相关阅读:
    关于object和embed
    关于跨域问题的解决办法
    SQL 中 SELECT 语句的执行顺序
    sql子查询 嵌套SELECT语句
    PL/SQL中SELECT总结
    SQL Server
    SQL Server SELECT逻辑处理顺序
    SQL 基础:Select语句,各种join,union用法
    sql基础知识(新手必备)
    mysql处理海量数据时的一些优化查询速度方法
  • 原文地址:https://www.cnblogs.com/busor/p/2412136.html
Copyright © 2011-2022 走看看