go垃圾回收
一、gc触发条件
主要有两个:
1.超过内存大小阈值
比如一次回收完毕后,内存的使用量为5M,那么下次回收的时机则是内存分配达到10M的时候
2.达到定时时间
如果一直达不到内存大小,这个时候GC就会被定时时间触发,默认2min触发一次,保证资源的回收
二、go中如何进行gc调优
1.减少对象的分配,合理重复利用
2.避免string和[]byte转化
string和[]byte转化的时候,底层数据结结构会进行复制,导致 gc效率会变低
3.尽量少使用+拼接字符串
针对他的每一个操作都会创建一个新的string,可以用 strings.Join代替
4.尽量避免频繁创建对象(&abc{}、new(abc{})、make())
5.程序开发阶段关注请求响应时间,每个功能优化一点时间,很多功能就很客观了