考虑以下循环在LSP中调用WSARecv;任何人都可以解释或建议为什么在行上创建文件创建的原因[FileIOHere]会加快文件上传约x5?这是因为在PrcocMon网络活动中检查时发送长度较大?完整缓冲区而不是许多小缓冲区。
int rSock(…){
DWORD rlen=0,readLengthTotal=0,f=0;
int rc = 0;
WSABUF readb;
*pErr = NO_ERROR;
While (ReadLTotal < bufferL){
[AddFileIOHereFor~x5Perf]
rc = WSARecv(s, &readb, 1, &rlen, &f, NULL, NULL);
if (rc == 0){
if (len ==0){break;}
readLengthTotal += len;
}else {
*pErr = WSAGetLastError();
break;
}
}
return readLengthTotal;
}
CreateFileW创建如下,其中file只是C根目录下的空文件: CreateFileW(f,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
WSARecv - https://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx
是以某种方式安排调度还是警报状态?
建议欢迎并提前多多感谢。