Für den folgenden Code:Goroutine Größe in Golang steigt nicht linear
const LOOPNUM int = 200000
func main() {
z := make(chan int16)
for i := 0; i < LOOPNUM; i++ {
go test(z)
}
}
func test(a chan<- int16) {
a <- -1
}
ich den Code lief mit LOOPNUM = 200k und 400k und die Speichernutzung ist wie folgt aus:
Kennt jemand den Grund der plötzlichen Speicherzunahme, nachdem ich meine goroutines verdoppelte (und irgendeine Lösung, um Speicherverbrauch zu reduzieren)?
Danke!
Welchen Messwert verwenden Sie, um Ihr Gedächtnis zu messen? Drucken Sie die relevanten Speicherstatistiken aus der go-Laufzeit, die genau angeben, was zugewiesen wurde. – JimB