我有两个问题。
(对于downvoter:第二个问题是基于第一个问题中表示的识别,所以这些不是太宽)
CURLOPT_MAXCONNECTS
/ CURLMOPT_MAXCONNECTS
/ CURLMOPT_MAX_TOTAL_CONNECTIONS
我写了这篇文章:
CURLOPT_MAXCONNECTS / CURLMOPT_MAXCONNECTS / CURLMOPT_MAX_TOTAL_CONNECTIONS の違い - Qiita
英文摘要是:
CURLOPT_MAXCONNECTS
(PHP 5.5或更高版本)
curl_exec
CURLMOPT_MAXCONNECTS
(PHP 5.5或更高版本)
curl_multi_exec
CURLMOPT_MAX_TOTAL_CONNECTIONS
(PHP 7.0.7或更高版本)
curl_multi_exec
它们是否正确?
CURLMOPT_MAXCONNECTS
如何运作?首先,我认为当前PHP手册中对CURLMPOT_MAXCONNECTS
的描述是错误的。我在这里报告了这个问题:
PHP :: Doc Bug #72890 :: The description of CURLOPT_MAXCONNECTS is wrong
说明
CURLOPT_MAXCONNECTS的描述错误。
PHP手册说:“默认为10.”
libcurl手册说:“默认情况下,libcurl将扩大每个添加的简易手柄的大小,使其适合添加的简易手柄数量的4倍。”
<<主要问题>>
假设我的观点是正确的,为什么libcurl计算 4次添加的简易句柄的数量?我不知道这个操作没有意义......
答案 0 :(得分:3)
如果您需要最准确和详细的文档,您应该阅读curl提供的文档,因为这些选项只是从PHP传递到libcurl。这三个选项已经非常清楚地记录在案。如果您在阅读完curl文档后有疑问,那么我很乐意调整它们以删除剩下的问题:
CURLOPT_MAXCONNECTS - 这在使用简易界面时设置了限制
CURLMOPT_MAXCONNECTS - 这是在使用多界面时
CURLMOPT_MAX_TOTAL_CONNECTIONS - 这是直播连接
的最大值这只是一个判断调用,当我不得不想出一个默认值时,开发人员(我!)选择的任意数字。我们希望允许一个公平规模的连接池来鼓励和实现良好的连接重用,但我们不希望它太大,因为它只会浪费资源而且池越大,从不 - 那里将再次使用连接。
这个想法也是因为多接口通常与许多并行句柄一起使用,因此将使用比常规简易句柄更大的池/缓存,并且只能进行串行传输。