Go语言技术文章
-
journalctl 只输出指定字段时,应把 -o json 与 --output-fields=字段列表分开使用。本文用一个逐行 JSON 日志小工具说明字段白名单、服务过滤、固定元数据和字段缺失的处理边界。360 收藏 -
Go嵌入资源遍历需要区分原始文件系统与fs.Sub子视图的相对路径。本文通过完整代码说明WalkDir回调、目录跳过和同视图读取规则,避免路径混用。360 收藏 -
Go atomic.Uint64 的原子性不会消除 uint64 的回绕边界。本文说明如何识别溢出、用 CAS 实现不会回退的饱和计数,并选择清零、分段或归档方案。359 收藏 -
Golang · Go问答 | 2天前 | 基准测试 · go · testing · 性能优化 · 性能测试 CPU count GOMAXPROCS testing.B Go benchmark benchtime
Go benchmark 结果波动大时,应先固定计时边界、-benchtime、-count、-cpu 和机器状态,再用多份样本判断优化是否稳定。本文给出 testing.B、GOMAXPROCS 和环境噪声的排查方法。356 收藏 -
显存有限时,Accelerate 可以用 gradient_accumulation_steps 把多个 micro-batch 合成一次参数更新。本文说明 Accelerator、accumulate(model)、scheduler 与变长 token loss 归一化的配置边界。356 收藏 -
journalctl 可以把服务单元和启动周期作为两个筛选维度。本文用 --unit、--boot 和 --list-boots 组合查询,说明当前启动、历史启动、日志字段与空结果排查边界。356 收藏 -
Golang · Go问答 | 2天前 | 数据库 · Context · 后端开发 · Go问答 · Go 连接池 context database/sql 数据库超时 QueryContext 驱动取消
Go context 超时后数据库查询仍未结束,通常要沿着 QueryContext、数据库驱动、Rows 读取和连接池逐层排查。本文给出最小写法、驱动取消边界、资源释放和连接池诊断方案。355 收藏 -
AI 应用的流式请求不能用“连接结束”判断模型完成。本文从一次取消被记成成功的故障入手,拆分 AbortSignal、SSE 完成事件和异常断开,给出可落地的状态字段、前端判定代码与日志边界。354 收藏 -
Go sync.RWMutex.TryRLock 会立即尝试取得读锁,失败时直接返回 false,不会等待。本文说明它适合机会性读取和软降级的场景,以及失败分支、RUnlock 和关键数据一致性的边界。353 收藏 -
Go time.Time 写入 JSON 时,先用 In 固定业务时区,再按 RFC3339 或字段级自定义 MarshalJSON 输出稳定格式。351 收藏 -
RegisterOnShutdown 适合快速发出协议关闭通知,不应在回调里等待清理完成。本文用 channel、WaitGroup 和超时上下文组织可控的异步退出流程。351 收藏 -
Go 项目同时存在 go.mod、vendor 和 CI 构建脚本时,使用 -mod=vendor、-mod=mod 与 -mod=readonly 可以明确切换依赖来源。本文说明自动模式、同步 vendor、CI 固定参数和发布前检查清单。351 收藏 -
Go regexp 使用 RE2 语法并保证匹配时间随输入规模线性增长,因此不需要给传统回溯引擎配置超时。本文用输入字节预算、模式编译边界和 FindAll 结果上限控制正则相关资源消耗。350 收藏 -
Go 里 os.Open 返回成功并不代表后续 File.Read 一定成功。本文按 Open、Read、Close 三个阶段拆开权限错误,使用 PathError、errors.Is 和 os.IsPermission 定位真正失败的操作,并给出不会覆盖主错误的写法。350 收藏 -
Go flag 的多子命令程序可以为每个子命令创建独立 FlagSet,并分别设置 Usage 与输出流。本文用 serve、config 示例说明帮助文本隔离、解析错误处理和验证方法。350 收藏