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推荐非阻塞方式。

  • 相关阅读:
    集训第四周(高效算法设计)P题 (构造题)
    集训第四周(高效算法设计)O题 (构造题)
    集训第四周(高效算法设计)N题 (二分查找优化题)
    集训第四周(高效算法设计)M题 (扫描法)
    集训第四周(高效算法设计)L题 (背包贪心)
    集训第四周(高效算法设计)K题 (滑窗问题)
    集训第四周(高效算法设计)J题 (中途相遇法)
    集训第四周(高效算法设计)I题 (贪心)
    UVA302 John's trip(欧拉回路)
    P4281 [AHOI2008]紧急集合 / 聚会
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/4561307.html
Copyright © 2011-2022 走看看