Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有ssl url的libcurl中CPU使用率高_Ssl_Curl - Fatal编程技术网

具有ssl url的libcurl中CPU使用率高

具有ssl url的libcurl中CPU使用率高,ssl,curl,Ssl,Curl,我使用10个线程连接到https连接。Curl占用了100%的cpu。 我怎样才能减少呢 每个线程代码如下 curl_connection = curl_easy_init(); 现在使用相同的连接 setting some header then curl_easy_perform(curl_connection); 您可以通过运行其他任务来减少它,然后这些任务将拆分CPU。否则,您希望CPU尽可能多地做有用的工作。这并不是说您可以保存它以备以后使用。您可以通过运行其他任务来减少它,然后

我使用10个线程连接到https连接。Curl占用了100%的cpu。 我怎样才能减少呢

每个线程代码如下

curl_connection = curl_easy_init();
现在使用相同的连接

setting some header then 
curl_easy_perform(curl_connection);

您可以通过运行其他任务来减少它,然后这些任务将拆分CPU。否则,您希望CPU尽可能多地做有用的工作。这并不是说您可以保存它以备以后使用。

您可以通过运行其他任务来减少它,然后这些任务将拆分CPU。否则,您希望CPU尽可能多地做有用的工作。这并不是说你可以保存它以备以后使用。

我想你可以在主线程中调用curl\u easy\u perform,避免这个,但在子线程中调用它。

我想你在主线程中调用curl\u easy\u perform,避免这个,但在子线程中调用它。

对于在
libcurl
中寻找高CPU使用率解决方案的其他人: 使用
curl\u easy\u init()
初始化
libcurl
easy handle,然后使用
curl\u easy\u cleanup(\u pCurl)
对其进行销毁,需要大量的CPU资源。
要减少
libcurl
的CPU使用率,需要创建一个
libcurl
句柄池,并通过调用句柄上的
curl\u easy\u reset()
重用每个句柄。或者,不必实现一个
libcurl
句柄池,您可以在每个线程初始化句柄一次,然后在每个新的web请求之前在一个循环中调用
curl\u easy\u reset()

,其他人可以在
libcurl
中寻找高CPU使用率的解决方案: 使用
curl\u easy\u init()
初始化
libcurl
easy handle,然后使用
curl\u easy\u cleanup(\u pCurl)
对其进行销毁,需要大量的CPU资源。
要减少
libcurl
的CPU使用率,需要创建一个
libcurl
句柄池,并通过调用句柄上的
curl\u easy\u reset()
重用每个句柄。或者,不必实现一个
libcurl
句柄池,您可以在每个线程初始化句柄一次,然后在每个新的web请求调用
curl\u easy\u reset()?如果您想要更多的CPU用于其他事情,请执行流程。最有可能的是,您所做的是CPU有限的,因此它将使用所有可用的CPU来尽快完成工作。目前我们正在运行10个爬虫程序,那么当我们开始有100个爬虫程序时会发生什么情况?其他进程的CPU又如何。由于我的过程是吃全cpuDo,您希望它运行缓慢还是快速?这是你的选择。你只有这么多的CPU。你可以选择如何使用它,但你不能更多地利用它。如果您希望其他事情获得更高的优先级,请使用“nice”来减少此进程的CPU。或者,您可以优化此程序,以用更少的CPU完成更多的工作。(你分析过吗?)是的。我使用callgrind进行了分析,它在curl\u easy\u性能中的使用率为92%。您希望它运行得慢些吗?如果您想要更多的CPU用于其他事情,请执行流程。最有可能的是,您所做的是CPU有限的,因此它将使用所有可用的CPU来尽快完成工作。目前我们正在运行10个爬虫程序,那么当我们开始有100个爬虫程序时会发生什么情况?其他进程的CPU又如何。由于我的过程是吃全cpuDo,您希望它运行缓慢还是快速?这是你的选择。你只有这么多的CPU。你可以选择如何使用它,但你不能更多地利用它。如果您希望其他事情获得更高的优先级,请使用“nice”来减少此进程的CPU。或者,您可以优化此程序,以用更少的CPU完成更多的工作。(你分析过吗?)是的。我使用callgrind进行了分析,它在curl\u easy\u perform中显示了92%的使用率