【发布时间】:2011-10-27 07:47:34
【问题描述】:
我使用 10 个线程连接到 https 连接。 Curl 占用了 100% 的 CPU。 我怎样才能减少呢?
每个线程代码都像
curl_connection = curl_easy_init();
现在使用相同的连接
setting some header then
curl_easy_perform(curl_connection);
【问题讨论】:
-
为什么要让它运行得更慢?如果你想要更多的 CPU 用于其他事情,
nice进程。很可能,您正在做的事情是受 CPU 限制的,因此它将使用所有可用的 CPU 尽快完成工作。 -
目前我们正在运行 10 个爬虫,那么当我们开始拥有 100 个爬虫时会发生什么?
-
其他进程的cpu怎么样。因为我的进程正在吃满 CPU
-
您希望它运行慢还是快?这是你的选择。你只有这么多的CPU。你可以选择如何使用它,但你不能做更多。如果您希望其他事情获得更高的优先级,请使用“nice”来给这个进程更少的 CPU。或者,您可以优化此程序以使用更少的 CPU 完成更多工作。 (你分析过吗?)
-
是的。我使用 callgrind 进行了分析,它在 curl_easy_perform 中显示 92% 的使用率