Dans la scène client Webapi, le cycle de vie de HttpClient est une considération clé. Cet article traite des frais généraux de performance liés à la réutilisation des instances existantes pour la création d'un nouveau HTTPClient pour chaque appel.
Créer et disposer de httpclient
Création et élimination de HttpClient impliquant l'établissement et la clôture de la connexion du réseau, ce qui affectera les performances. L'exemple de fragment de code démontre la création et l'élimination du nouveau httpclient dans chaque demande:
Créez la surcharge de la création d'un nouveau httpclient
<code>using (var client = new HttpClient()) { // API 请求 }</code>
Bien que le HTTPClient fournit des fonctions telles que les informations d'identification réutilisables, les cookies et les DefaulTeQuestHeaders, il entraînera un certain coût lors de la création d'un nouvel exemple pour chaque appel. L'état de partage entre ces attributs et les procédures de traitement de la gestion est devenu des dépenses inutiles.
Le principal problème de performance est l'élimination de HttpClient, qui sera obligé de fermer la connexion TCP / IP gérée par ServicePointManager. Cela conduit à établir une nouvelle connexion TCP pour chaque demande d'utiliser le nouveau HTTPClient.
Impact de performance
L'impact des performances dépend des conditions du réseau et des types de connexions (HTTP / HTTPS). Les résultats de l'observation montrent que la réédition des connexions TCP via Internet entraînera des pertes de performances évidentes.
suggestion
Afin de maximiser les dépenses de performance, il est recommandé de maintenir une instance HTTPClient pour chaque API unique qui accède pour pénétrer le cycle de vie de l'application. Cette méthode réduit la nécessité de créer et de disposer de l'instance httpclient, améliorant ainsi les performances.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!