Go 中,除了使用缓存池,如何减少 slice 的动态分配??
比如,有这样一个函数:
func fo优艾设计网_Photoshop交流o(n int) []byte { bar := make([]byte, n) ...do some thing with b return bar }
bar := make([]byte, n)
是一处动态内存分配,函数的其他部分不会再对bar
的大小进行修改了。这种情况下有没有方法消除bar := make([]byte, n)
这处动态内存分配?
肖建 优艾设计网_Photoshop交流 1小时前
如果是Read Only 的可以使用楼上的方法。
百合2017ABC 1小时前 优艾设计网_PS交流
类似于redis的内存管理,初始化一个大slice,每次使用大slice的一部分
kiwikiwi 1小时前 优艾设计网_平面设计
申明一个生命周期在函数foo以外的slice,每次复用这个slice(前提是你需要保证这样没问题)
a224229 优艾设计网_电脑技术 1小时前
可以bar := make([]byte, n, capacity)
,预先指定一个容量。
凌乱萌萌哒 1小时前
这个问题只能从你自身的需求来讲,每次调用foo如果期望一个独立的slice返回,那么只能优艾设计网_Photoshop百科这么办了。如果不是这样,可以考虑以下方法:
岁月打碎记忆 优艾设计网_平面设计 1小时前
这种问题是很单纯的自己想多的。
精彩评论