我使用10个线程连接到https连接。 Curl占用了100%的cpu。 我怎样才能减少呢?
每个线程代码都像
curl_connection = curl_easy_init();
现在使用相同的连接
setting some header then
curl_easy_perform(curl_connection);
答案 0 :(得分:1)
您可以通过运行其他任务来减少它,然后任务将拆分CPU。否则,您希望CPU尽可能多地完成有用的工作。这不像你以后可以保存它。
答案 1 :(得分:0)
我猜你在主线程中调用curl_easy_perform,避免这种情况,但是在子线程中调用它。
答案 2 :(得分:0)
对于其他在libcurl
中寻求高CPU使用率解决方案的人:
它使用大量的CPU功能来使用libcurl
初始化curl_easy_init()
简易句柄,然后使用curl_easy_cleanup(_pCurl)
对其进行销毁。
为了减少libcurl
的CPU使用率,您需要创建libcurl
句柄池,并通过在句柄上调用curl_easy_reset()
重用每个句柄。另外,除了实现libcurl
句柄池之外,您还可以在每个线程中初始化一次句柄,然后在每个新的Web请求仅调用curl_easy_reset()
之前在循环中初始化。