使用WSASend改善网络程序的性能
来源:互联网 发布:js 数组的排序 编辑:程序博客网 时间:2024/05/07 09:17
socket本身有一个send函数,这个函数的只能一次发送一个缓冲区,这对于在发送大量数据的时候或者数据包很多的时候就可能导致可能导致系统的低性能,主要原因在于调用太多次的send函数,导致从用户态到核心态的不断切换,而耗费了当前的CPU时钟周期。
那么解决办法就是减少调用send的次数,一种办法就是使用一个大一点的BUFFER,在发送数据的时候将多个数据包的内容COPY到这个BUFFER中,然后一次发送,这样在一定程度上减少了send的调用次数,但需要一定的编码工作。
Windows平台上有一个WSASend函数,可以支持一次发送多个BUFFER的请求,每个被发送的数据被填充到WSABUF结构中,然后传递给WSASend函数同时提供BUF的数量,这样WSASend就能上面的工作而减少send的调用次数,来提高了性能。
实际检验证明,使用WSASend可以提高50%的性能甚至更多。
转自:http://blog.csdn.net/windcsn/article/details/428447
- 使用WSASend改善网络程序的性能
- 使用WSASend改善网络程序的性能
- 改善J2EE程序性能的一些方法
- 改善J2EE程序性能的一些方法
- XWindow的程序性能及改善
- setsockopt()改善socket网络程序的健壮性
- java程序优化之有助于改善性能的技巧
- 浅析:setsockopt()改善socket网络程序的健壮性
- 浅析:setsockopt()改善socket网络程序的健壮性
- 浅析:setsockopt()改善socket网络程序的健壮性
- [转]浅析:setsockopt()改善socket网络程序的健壮性
- [转]浅析:setsockopt()改善socket网络程序的健壮性
- 浅析:setsockopt()改善socket网络程序的健壮性
- 浅析:setsockopt()改善socket网络程序的健壮性
- setsockopt改善socket网络程序的健…
- 浅析:setsockopt()改善socket网络程序的健壮性
- 浅析:setsockopt()改善socket网络程序的健壮性
- 毕设室网络的改善
- 一道Intel的笔试题
- 黑马程序员_反射
- oracle 删除重复数据
- LeetCode Partition List
- 大站技术
- 使用WSASend改善网络程序的性能
- word中 两页同时并排显示 与 单页显示 之间的切换
- 树(此处以二叉搜索树为例)的按层遍历 更改版本
- POJ 2251 Dungeon Master
- hdu 1198 深搜
- BZOJ 2547(匈牙利算法-任意边的处理)
- c++ new内幕
- jquery中提交文本框失去焦点 与获取焦点的实例
- Linux umount 报 device is busy 的处理方法