Wie man Memory Pooling in Golang implementiert

Ich habe einen HTTP-Server in Go implementiert.

Für jede Anfrage muss ich Hunderte von Objekten für eine bestimmte Struktur erstellen, und ich habe ~ 10 solche Strukturen. Nachdem die Anforderung gemäß der Go-Implementierung abgeschlossen ist, wird der Müll eingesammelt.

So wird für jede Anforderung so viel Speicher zugewiesen und freigegeben.

Stattdessen wollte ich Memory Pooling implementieren, um die Leistung sowohl auf der Zuweisungsseite als auch auf der GC-Seite zu verbessern.

Zu Beginn der Anfrage werde ich aus dem Pool nehmen und sie zurücklegen, nachdem die Anfrage zugestellt wurde

Von der Pool-Implementierungsseite

Wie kann man Speicher eines bestimmten Strukturtyps zuordnen und freigeben?Wie kann ich nachverfolgen, welche Informationen diesem Speicher zugewiesen wurden und welche anderen nicht?

Weitere Vorschläge zur Verbesserung der Leistung bei Speicherzuweisung und Freigabe?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage