摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 2025-12-17,golang 1.26 的第一个预览版发布了: Go 1.26 Release Candidate 1 is released: htt
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 假定已知存在 N 个不同的值,如何设计一个 hash 函数,使得这些值在 hashtable 中严格的实现 O(1) 时间复杂度的查询? 实际上,很多编译器把
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1. 调试方法 把一个 test 程序编译为二进制 go test \ -c \ -gcflags="all=-N -l" \ -o xxhash.test
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 因为一个基于 fasthttp 的服务在发布上出现了一定量的 503 错误,由此怀疑 fasthttp 可能没有很好地实现 graceful shutdown
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从一篇文章中看到,编译器会把 a*10 优化成类似 a<<3 + a<<1,通过位运算和加法来避免更加耗时的操作。 我的朋友实际测试发现,这个写法在 gola
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 为了去掉数组的下标越界检查,于是把数组访问改成 unsafe 的指针访问。 运行时出现无法调试无法捕获的错误: unexpected fault addres
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我仍然在尝试优化 VictoriaLogs 的性能,手贱开始改以下这个函数: // lib/logstorage/bloomfilter.go func in
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 引子 VictoriaMetrics (Github: https://github.com/VictoriaMetrics/VictoriaMetrics)
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 先说结论:一些比较小的循环,可以用 switch + 常量来展开,可以提升性能。因为编译器会为 switch 建立代码段的跳转表,从而不需要很多比较指令。 例
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我想要做两个 int64 数组的比较: align_4: VPBROADCASTQ R12, Y1 VMOVDQU (R8), Y0 VPTEST Y0, Y
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 阅读 VictoriaLogs 源码时,发现这样一段代码: // lib/logstorage/log_rows.go func (lr *logRows)
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 因为我自己的水平还在山脚下,所以我只看见了眼前的这几座山…… 二十年前我刚入行的时候,我的岗位被称作“后台服务器开发”,如今可能有很多叫法:后端工程师,云原生
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 近期做了一个包含 cgo 的 golang 库,为了让依赖的 ffmpeg 等方便引用,于是提供了编译镜像。 相当于库内的代码直接在编译镜像里可以很方便地编译
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在特定的编译容器中进行编译,通过这样的方法启动了容器: docker run -d -it --name=compile_container \ -v ~/:
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 如题:一个使用了cgo的golang项目中,为了与c交互,需要把上下文对象: 1 在golang中获得指针 2 使用 unsafe.Pointer(addre
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 这只是一个简单的队列,在单个协程中运行,莫名其妙就 panic 了,而且堆栈信息中找不到有用信息。 同样的程序在 linux 中执行又是对的。 暂时想不明白是
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在 macos arm64 下调试一个无锁算法的时候,总在莫名其妙的地方崩溃,后来发现是 atomic.LoadUint32() 的地方读到的值是 0. 1
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 偶尔了解到 DPDK 的代码中,使用 prefetch 指令可能让包处理速度加快 10% ~ 15%. 尝试在 golang 中引入 prefetch 指令,
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在 Go 编程中,将一个字符串池类名命名为 arena 是有一定背景和意义的。这个命名通常源于以下几个方面的典故或技术理念: “Arena” 的字面意义 “A
阅读全文
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 本文的 Github 地址为:https://github.com/ahfuzhang/learning_go_plan9_assembly/blob/mai
阅读全文