Go 中,除了使用緩存池,如何減少 slice 的動態分配??
比如,有這樣一個函數:
func foo(n int) []byte { bar := make([]byte, n) ...do some thing with b return bar }
bar :<愛尬聊_知識大全>= make([]byte, n)是一處動態內存分配,函數的其他部分不會再對bar的大小進行修改了。這種情況下有沒有方法消除bar := make([]byte, n)這處動態內存分配?
肖建 4小時前
如果是Read Only 的可以使用樓上的方法。
百合2017ABC 4小時前
類似于redis的內存管理,初始化一個大slice,每次使用大slice的一部分
kiwikiwi 4小時前
申明一個生命周期在函數foo以外的slice,每次復用這個slice(前提是你需要保證這樣沒問題)
a224229 4小時前
可以bar := make([]byte, n, capacity),預先指定一個容量。
凌亂萌萌噠 4小時前
這個問題只能從你自身的需求來講,每次調用foo如果期望一個獨立的slice返回,那么只能這么辦了。如果不是這樣,可以考慮以下方法:
歲月打碎記憶 4小時前
這種問題是很單純的自己想多的。
