golang
已收录文章:341篇
-
协程优化需控制数量、减少阻塞、合理调度与资源复用。1.用workerpool和缓冲channel限制并发,避免无限创建;2.防止channel无配对读写、网络无超时等阻塞问题;3.利用sync.Pool缓存对象,减少GC压力;4.结合pprof、trace等工具监控协程行为,定位瓶颈。111 收藏
-
Go语言中sync/atomic包提供原子操作支持,适用于多协程环境下无锁安全读写;2.原子操作保证变量访问不可中断,避免数据不一致,相比互斥锁更轻量高效;3.支持int32、int64等基本类型,不直接支持float;4.常用函数包括LoadXXX、StoreXXX、AddXXX、SwapXXX和CompareAndSwapXXX;5.适用于计数器、状态标志等简单共享变量场景。352 收藏
-
var用于包级变量、需显式类型或零值的场景,:=用于函数内简洁初始化;前者更显式,后者提升效率但需防作用域陷阱。281 收藏
-
在Golang中,结构体参数默认值传递,大结构体应使用指针传递以避免拷贝开销并允许修改原数据。通过&取地址、*声明指针,函数或方法接收*Struct类型可直接操作原始结构体,适用于大对象、需修改内容或含不可复制字段的场景,但需注意nil检查和不返回局部变量地址等安全问题。201 收藏
-
掌握bytes包核心函数可提升Go语言中字节切片操作效率。1.使用Contains、Index、Equal进行查找与比较;2.利用Split和Join实现分割与连接;3.通过ReplaceAll、Trim、TrimSpace完成替换与修剪;4.借助Buffer高效拼接数据,避免内存频繁分配。481 收藏
-
合理配置HTTPTransport复用机制可显著提升性能。1.增大MaxIdleConns至1000,提高MaxIdleConnsPerHost至100,设置IdleConnTimeout为45秒;2.全局复用http.Client实例,避免连接池分散;3.启用Keep-Alive并匹配服务端配置;4.监控QPS、延迟、连接命中率及资源使用,持续调优。正确配置后延迟可降30%以上。263 收藏