In der WebAPI -Client -Szene ist der Lebenszyklus von HTTPClient eine wichtige Überlegung. In diesem Artikel wird der Leistungsaufwand in Bezug auf die Wiederverwendung bestehender Instanzen für die Erstellung eines neuen HTTPClient für jeden Anruf erörtert.
Erstellen und entsorgen Sie httpclient
Erstellung und Entsorgung von HTTPClient, die die Einrichtung und Schließungsnetzwerkverbindung einbeziehen, die die Leistung beeinflussen. Das Beispielcode -Fragment demonstriert die Erstellung und Entsorgung des neuen HTTPClients in jeder Anfrage:
Erstellen Sie den Overhead des Erstellens eines neuen HTTPClient
<code>using (var client = new HttpClient()) { // API 请求 }</code>
Obwohl der httpclient Funktionen wie wiederverwendbare Anmeldeinformationen, Cookies und DefaultrequestHeaders bietet, wird ein neues Beispiel für jeden Anruf erstellt. Der Freigabestatus zwischen diesen Attributen und den Verarbeitungsverfahren zur Verwaltung ist zu unnötigen Ausgaben geworden.
Das Hauptleistungsproblem ist die Entsorgung von HTTPClient, die gezwungen sein wird, die von ServicePointManager verwaltete TCP/IP -Verbindung zu schließen. Dies führt dazu, dass eine neue TCP -Verbindung für jede Anfrage zur Verwendung des neuen HTTPClients aufgebaut wird.
Leistungsauswirkungen
Leistungsauswirkungen hängt von Netzwerkbedingungen und Verbindungstypen (HTTP/HTTPS) ab. Die Beobachtungsergebnisse zeigen, dass die Resedablishment von TCP -Verbindungen über das Internet zu offensichtlichen Leistungsverlusten führen wird.
Vorschlag
Um die Leistungskosten zu maximieren, wird empfohlen, eine httpclient -Instanz für jede eindeutige API beizubehalten, die zugreift, um in den Lebenszyklus der Anwendung zu durchdringen. Diese Methode reduziert die Notwendigkeit, die HTTPClient -Instanz zu erstellen und zu entsorgen, wodurch die Leistung verbessert wird.Das obige ist der detaillierte Inhalt vonSollte ich für jeden Web -API -Anruf einen neuen HTTPClient erstellen oder eine Instanz wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!