Dois-je fermer cURL ou pas?
J'ai une fonction qui s'appelle 3 différentes Api à l'aide de cURL plusieurs fois. Chaque API résultat est transmis à la prochaine API appelée dans les boucles imbriquées, de sorte que cURL est actuellement ouvert et fermé plus de 500 fois.
Dois-je laisser cURL ouvert pour l'ensemble de la fonction ou est-ce OK pour ouvrir et fermer de nombreuses fois dans une fonction?
Assez vague question sans voir à l'usage et à la façon dont le code est en cours de traitement.
J'ai tendance à pencher du côté fiabilité, frais et poignées semble moins problématique, car les restes de l'état d'une demande semble moins susceptibles de polluer les futures demandes si vous faites une nouvelle poignée. Cela dit, j'ai un processus qui organise régulièrement pendant des semaines, faisant près d'un million de requêtes http sur le même curl poignée. Ils sont très plaine des requêtes http à une api unique sur un seul domaine. Je l'ai connu aucun problème.
Double Possible de Quand utiliser des boucles de la fonction curl_close?
J'ai tendance à pencher du côté fiabilité, frais et poignées semble moins problématique, car les restes de l'état d'une demande semble moins susceptibles de polluer les futures demandes si vous faites une nouvelle poignée. Cela dit, j'ai un processus qui organise régulièrement pendant des semaines, faisant près d'un million de requêtes http sur le même curl poignée. Ils sont très plaine des requêtes http à une api unique sur un seul domaine. Je l'ai connu aucun problème.
Double Possible de Quand utiliser des boucles de la fonction curl_close?
OriginalL'auteur makenoiz | 2013-08-04
Vous devez vous connecter pour publier un commentaire.
Il y a une augmentation des performances de la réutilisation de la même poignée. Voir: En réutilisant les mêmes curl poignée. Grosse augmentation de la performance?
Si vous n'avez pas besoin de la demande pour être synchrone, pensez à utiliser le curl_multi_* fonctions (par exemple,curl_multi_init, curl_multi_exec, etc.) qui fournissent également un gros boost de performance.
Mise à JOUR:
J'ai essayé doivent être coupées curl avec l'aide d'une nouvelle poignée pour chaque demande et à l'aide de la même poignée avec le code suivant:
et a obtenu les résultats suivants:
Afin de réutiliser la même poignée fournit en fait une augmentation considérable des performances lors de la connexion au serveur lui-même plusieurs fois. J'ai essayé de le connecter à différents serveurs:
Et a obtenu le résultat suivant:
Encore tout à fait une augmentation considérable des performances.
Je crois cURL utilise keep-alive, mais chaque appel à curl_exec() lance une nouvelle demande (parce que les options ont peut-être changé, etc.) En cas de connexion à un autre serveur, ce devrait être le cas.
Merci à tous. Alors que je suis connecter au même serveur, mais les différentes url, Im étonné par les points de repère Otome posté. Cependant j'aime vraiment la fiabilité point que Chris Posté.....
Alors que je me rends compte que c'est un vieux post, une chose à garder à l'esprit les différents serveurs DNS benchmark est à la recherche a lieu dans la première exécution du calendrier, l'empoisonnement des résultats. Si vous exécutez une simple duplication du test dans le même fichier (il suffit de copier et coller une couple de fois) vous remarquerez que les performances finit par être à peu près à égalité.
OriginalL'auteur AlliterativeAlice