работы со стеком?
Вопрос в том, почему мне escape analysis говорит, что слайс не уходит в heap. Когда убрал ограничение на cap, он начал в heap уходить
а можно проиллюстрировать это кодом?
chain := make(model.Cards, 0, 20) name := constCards[0].Static.ChainName for _, c := range constCards { if c.Done != 0 { doneCards = append(doneCards, c) } if c.Static.ChainName == name { chain = append(chain, c) continue } pendingCards = append(pendingCards, getPending(chain)) name = c.Static.ChainName chain = chain[:0:20] chain = append(chain, c) }
internal/service/cards.go:70:15: make(model.Cards, 0, 20) does not escape
ну двадцать элементов он на стеке аллоцирует, но это именно этот самый слайс с именно этим массивом будет всё равно потом скорее всего замещён
Обсуждают сегодня