golang
已收录文章:14424篇
-
sync.Pool不支持按需动态扩缩容,因其无水位监控、无负载反馈、不响应积压,扩容缩容依赖手动Get/Put,且GC会清空池,无长度统计与容量控制接口。287 收藏
-
database/sql的Query和Exec不暴露执行耗时,因标准库抽象屏蔽了驱动细节,返回值无耗时字段,必须在调用链路中手动包裹计时逻辑或通过Context超时机制拦截。203 收藏
-
context.WithValue返回新context而非修改原对象,需显式传递给下游;key必须用不可比较的私有类型(如struct{}),value应为不可变小数据,取值须用双返回值断言防panic。405 收藏
-
Go错误码设计必须用具名类型(如ErrorCodeint)和结构体(如*BizError)实现,禁止直接用int;需分模块编号、查表映射HTTP状态码,并通过errors.As提取,确保类型安全与语义清晰。293 收藏
-
gopsutil的CPU和内存数值与top、free不一致,因默认返回累计值而非瞬时率;CPU需两次调用取差值,内存应基于Available计算真实使用率,磁盘IO需限定设备并加超时控制。195 收藏
-
404错误是因为pprof仅自动注册到http.DefaultServeMux,自定义mux(如Gin、Echo或http.NewServeMux)必须手动挂载handler,例如mux.Handle("/debug/pprof/",http.StripPrefix("/debug/pprof/",http.HandlerFunc(pprof.Index)))。175 收藏