• send和sendmsg性能测试【sendmsg和send的性能基本一样,并没有得到优化】


    1,摘要:测试send和sendmsg的性能,影响这两个函数性能的因素主要有发送的字节大小,增加循环次数,从100到10000000(千万)减少计算误差
    2,基本信息
    cat /proc/cpuinfo查看CPU信息,如下:

      Intel(R) Xeon(R) CPU E5-2698 v3 @ 2.30GHz

    cat /proc/version 查看操作系统内核版本,如下:

      Linux version 3.10.0-327.el7.x86_64

    cat /proc/meminfo查看内存信息,如下:

      MemTotal: 131748016 kB
      MemFree: 42526620 kB
      MemAvailable: 60623924 kB

    3,具体实验过程略,可参见:https://www.cnblogs.com/woshare/p/9079965.html

    4,实验分析

    注:X轴字节,Y轴时间,单位微秒

    结论:

    1,send和sendmsg的性能基本一样

    2,性能随字节成正比,比如128B~1.55微秒 ,256B~2.57微秒,1024B~8.72微秒,4096B~34.22微秒

    3,sendmsg(iovlen=1)和sendmsg(iovlen=4)的在发送相同字节情况下,性能也是4倍,sendmsg在性能上并没得到优化

     注:

    根据https://blog.csdn.net/zhangskd/article/details/45623759 的分析,send,sendto,sendmsg底层实现基本差不多

    send 是特殊的sendto:sendto(fd, buff, len, flags, NULL, 0); 

    sendto是iovlen=1的sendmsg

     这是一个查看源码的网站:https://elixir.bootlin.com/linux/v4.9.102/source/net/socket.c#L1668

  • 相关阅读:
    jqgrid 获取选中用户的数据插入
    jqgrid 自定义文本框、选择框等查询
    Java学习—— for循环
    Android中 Http请求
    异步消息处理机制——Handler用法
    ThreadLocal
    Android开发 学习笔记——HelloWorld
    eclipse 常用插件
    mysql 命令备份还原
    学习
  • 原文地址:https://www.cnblogs.com/woshare/p/9083411.html
Copyright © 2020-2023  润新知