Di tanto in tanto affronto i concetti come zero immondizia o l'uso efficiente della memoria ecc. Come un esempio nella sezione Funzionalità del pacchetto noto httprouter è possibile visualizzare quanto segue:Golang. Zero propagazione di immondizia o uso efficiente della memoria
Zero rifiuti: L'abbinamento e la spedizione processo genera zero byte di spazzatura. Infatti, le uniche allocazioni dell'heap create sono costruendo la fetta delle coppie chiave-valore per i parametri del percorso. Se il percorso della richiesta non contiene parametri, non è necessaria una singola allocazione dell'heap.
Anche questo pacchetto mostra ottimi risultati benchmark rispetto al http.ServeMux di libreria standard:
BenchmarkHttpServeMux 5000 706222 ns/op 96 B/op 6 allocs/op
BenchmarkHttpRouter 100000 15010 ns/op 0 B/op 0 allocs/op
quanto ne capire il secondo ha (dalla tabella) senza allocazione di memoria heap e media nulla numero di assegnazioni fatte per ripetizione.
La domanda: Voglio imparare una conoscenza di base della gestione della memoria. Quando il netturbino alloca/rilascia la memoria. Che cosa significano i numeri di riferimento (le ultime due colonne della tabella) e in che modo le persone sanno quando si sta distribuendo l'heap?
Sono assolutamente nuovo nella gestione della memoria, quindi è davvero difficile capire cosa sta succedendo "sotto il cofano". Gli articoli che ho letto:
- https://golang.org/ref/mem
- https://golang.org/doc/effective_go.html
- http://gribblelab.org/CBootcamp/7_Memory_Stack_vs_Heap.html
- http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
@OP - "undergoing rework" in questo caso significa che ci sono dei momenti in cui le variabili escono durante l'analisi di escape che non dovrebbero - e il team di Go ne è a conoscenza. Ciò significa che stai ricevendo allocazioni di heap quando in realtà dovresti ricevere un'allocazione di stack. C'è un documento affascinante su questo da qualche parte (non riesco a trovarlo su go-dev al momento)."Analisi di fuga" il termine sarà utile per la tua ricerca. Bella risposta Volker :) –