zoukankan      html  css  js  c++  java
  • 日志打屏对性能有多少影响

    36m的文件,在局域网服务器之间socket单进程传输,client读取源文件并socket发送文件,server接收文件。

    server日志打屏的时候花费时间

    begin sec[1433750824], microsec[847467]
    file[tsl.txt] read over .
    end sec[1433750993], microsec[163170]
    不打屏的时候花费时间
    begin sec[1433751290], microsec[743043]
    file[tsl.txt] read over .
    end sec[1433751291], microsec[39021]

    前者169s,后者仅0.65s,输出到stdout可见是一种极其低下的方式。

    第二次性能测试比对发送不同大小的包对性能的影响

    begin sec[1433751633], microsec[775116]
    file[tsl.txt] read over .
    end sec[1433751634], microsec[71070]
    发送包size为1024,为上次发送的十分之一,耗时不到1s,差别不大
    begin sec[1433751850], microsec[534276]
    file[tsl.txt] read over .
    end sec[1433751851], microsec[416336]
    发送包size为102,为上次发送的十分之一,耗时不到1s,差别不大。

    从测试结果看,socket通信中单次发送包的大小对读写效率有影响,包比较大的时候发送效率更快,但差别远没有文件大size和小size写入的差别那么夸张。

     第三次测试阻塞IO和非阻塞IO的性能差别

    begin sec[1433752606], microsec[316188]
    file[tsl.txt] read over .
    end sec[1433752607], microsec[35659]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752623], microsec[211854]
    file[tsl.txt] read over .
    end sec[1433752624], microsec[85021]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752638], microsec[868460]
    file[tsl.txt] read over .
    end sec[1433752639], microsec[683085]
    非阻塞IO,单次发送102字节的包,发送36m,平均耗时0.8s,和阻塞IO接近一样。

    begin sec[1433752705], microsec[148658]
    file[tsl.txt] read over .
    end sec[1433752705], microsec[264183]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752720], microsec[357477]
    file[tsl.txt] read over .
    end sec[1433752720], microsec[470690]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752863], microsec[351376]
    file[tsl.txt] read over .
    end sec[1433752863], microsec[459639]
    非阻塞IO,单次发送1024字节的包,发送36m,平均耗时0.1s,nice啊,大幅提升。

    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752954], microsec[603443]
    file[tsl.txt] read over .
    end sec[1433752954], microsec[630770]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752970], microsec[302743]
    file[tsl.txt] read over .
    end sec[1433752970], microsec[330649]
    /project/bm3.5/zhaodan/test#./tsclient
    begin sec[1433752976], microsec[764320]
    file[tsl.txt] read over .
    end sec[1433752976], microsec[791707]

     非阻塞IO,单次发送10240字节的包,发送36m,平均耗时0.03s,good

    从第三次测试结果来看,小size的包阻塞或者非阻塞基本看不出区别,随着发送包size的提升,性能提升极其显著,大数据IO推荐非阻塞方式。

  • 相关阅读:
    Vue--this.$refs 获取dom元素和组件(获取子组件的dom和方法)
    Vue评论案例--数据存放本地---联系子组件调用父组件方法(子组件点击发表-调用父组件更新评论列表)
    Spring系列教材 (五)- 注解方式 AOP
    Spring系列教材 (四)- aop 面向切面编程
    Spring系列教材 (三)- 注解方式 IOC/DI
    Spring系列教材 (二)- 注入对象
    Spring系列教材 (一)- 教程
    购物车系列教材 (五)- 订单模块
    购物车系列教材 (四)- 模块
    购物车系列教材 (三)- 用户模块
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/4561307.html
Copyright © 2011-2022 走看看