精易论坛

标题: apiTCP组件接收效率补丁 [打印本页]

作者: 剩下我de孩子气    时间: 2015-6-17 18:03
标题: apiTCP组件接收效率补丁
TCP组件接收效率补丁.zip (6.75 KB, 下载次数: 113)

客户和服务器组件调用WSAAsyncSelect来获得通知给窗口,从而自动设为非阻塞方式。当收到可读的通知消息时,首先调用ioctlsocket传递FIONREAD获得缓存区中当前收到的数据大小,并按照该大小调用recv。但第一次recv调用完后不立即返回,而是继续调用recv传递1024字节大小的缓冲区,循环直到recv不返回数据为止。而之所以单机发几MB都要好几秒,正是因为每次都传递1024字节大小的缓存区,假设10MB数据要分10240次调用recv,慢就慢在要将1024字节的数据相加10240次。
该补丁就是将recv的1KB改为了默认1MB(可通过变量动态修改),但接收缓存从原先8K改为128K(单机测试下来128K最合适)。
补丁前发送10M数据用时5秒半,补丁后用时80毫秒左右。

作者: 喵娘    时间: 2015-6-17 18:21
这是谁!
作者: wkf    时间: 2015-8-25 12:15
好像很厉害
作者: liux    时间: 2015-10-6 19:20
随便转个源码就精华,让开源的那些人情何以堪
作者: sjd3261    时间: 2015-10-21 22:49
感谢分享,很给力!~
作者: skybbnn    时间: 2015-11-16 17:10
感觉好厉害啊
作者: hhjj3388    时间: 2015-11-26 13:44
版主真他妈的逗·· 转别人的 不带链接  还给个精华··
作者: 开始接单    时间: 2015-12-24 06:16
hh,谢谢,                  
作者: 筱辉x    时间: 2015-12-26 16:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: Sir雨轩    时间: 2016-1-27 10:26
随便转个源码就精华,让开源的那些人情何以堪
作者: lwx0509    时间: 2016-3-14 18:47
看看学习一下
作者: 匿名i    时间: 2016-5-26 10:15
这个必须顶 争在找




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4