240 MB 파일을 다운로드하기 위해 libcurl을 C++과 함께 사용하는 경우가 있는데, 그렇게하려면 15 분이 걸립니다. 내 글쓰기 콜백이 가능한 한 빨리 이루어 졌는지 확인했습니다. 그것은 단지 데이터를 충분히 많이 차지하는 인 메모리 버퍼에 쓰는 것입니다. curl 명령을 사용하여 동일한 서버에서이 동일한 파일을 다운로드하면 1 분 이내에 완료됩니다. 파일을 다운로드 할 때 브라우저를 사용하면 1 분도 채 걸리지 않습니다. libcurl을 잘못 사용하고있을 가능성이 있습니까? 내 코드의 스 니펫은 다음과 같습니다.libcurl 다운로드 속도가 너무 느림
wxString postFields;
postFields += "package_name=" + packageName;
if(desiredVersion != 0)
postFields += wxString::Format("&package_version=v%d", desiredVersion);
curl_easy_reset(curlHandleEasy);
curl_slist_free_all(headers);
headers = nullptr;
headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
headers = curl_slist_append(headers, "Accept: application/x-zip-compressed");
url = "http://" + packageServer + ":7000/package_download";
urlData = url.c_str();
binResponse = new BinaryResponse(packageSize);
curl_easy_setopt(curlHandleEasy, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curlHandleEasy, CURLOPT_POSTFIELDS, postFieldsData);
curl_easy_setopt(curlHandleEasy, CURLOPT_URL, urlData);
curl_easy_setopt(curlHandleEasy, CURLOPT_WRITEFUNCTION, &Response::WriteCallback);
curl_easy_setopt(curlHandleEasy, CURLOPT_WRITEDATA, binResponse);
curlCode = curl_easy_perform(curlHandleEasy);
내 요청 설정에 문제가 있습니까? 필자가 쓰기 콜백을 변경하여 데이터를 작성한 더미 루틴으로 바꾼다면 가능한 한 빨리 버리십시오. 다운로드 속도는 여전히 매우 느립니다.
브라우저 목과 컬 명령이 적용되지 않는 상황에서 병목 목이 네트워크에서 보안 스캐닝 일 가능성이 있습니까?
당신의 쓰기를위한 코드는 무엇입니까? 그 두 줄을 주석으로 처리하고 곱슬 곱슬하게 테스트를 위해 글을 쓰게한다면 더 빠릅니까? – drew010