• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ahfuzhang
公众号:一本正经的瞎扯
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

随笔分类 -  golang

上一页 1 2 3 4 5 下一页

 
[转]阅读Go源码的顿悟时刻
摘要:文章转自:https://zhuanlan.zhihu.com/p/2119163293 我对各个顿悟时刻简单的总结如下: 切片 为什么切片操作后总返回一个新切片:因为其内部的数组会在容量满后自动扩容 预先分配切片的大小避免扩容是个好办法 协程是合作式的(cooperative) go 中高效的 G 阅读全文
posted @ 2024-10-25 17:26 ahfuzhang 阅读(73) 评论(0) 推荐(0)
【记录】arm64体系结构下写golang plan9汇编,怎么查有哪些指令?
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 方法 1:看源码 github.com/golang/go/src/cmd/internal/obj/arm64/anames.go: 这个位置有所有 arm 阅读全文
posted @ 2024-10-22 18:55 ahfuzhang 阅读(32) 评论(0) 推荐(0)
【解决了一个小问题】aws s3 sdk 中的自定义header设置哪些不参与aws v4 签名
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在通过代理访问 s3 服务端的时候,s3 服务端返回类似的错误信息: <?xml version="1.0" encoding="UTF-8" standal 阅读全文
posted @ 2024-09-25 18:45 ahfuzhang 阅读(247) 评论(0) 推荐(0)
【解决了一个小问题】错误配置 s3 sdk 的 part size 导致 oom
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 某服务上线后,运行一段程序崩溃,一开始以为是panic,为所有的go出来的协程都加上了recover()处理,仍然未找到崩溃原因。 更奇怪的是,在 aws 云 阅读全文
posted @ 2024-09-09 12:45 ahfuzhang 阅读(109) 评论(0) 推荐(0)
【发现一个小问题】golang http client: 配置了Client 对象的 Timeout 就会导致 context.WithTimeout() 模式的超时控制失效
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我这样初始化了客户端: var client = http.Client{Timeout:time.Duration(1000) * time.Millise 阅读全文
posted @ 2024-04-30 14:11 ahfuzhang 阅读(174) 评论(0) 推荐(0)
【介绍一个组件】go: Copy-On-Write map,对读极多和写极少的场景做优化
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 代码请看:https://github.com/ahfuzhang/cowmap 有这样一种场景:数据量不多的map,在使用中读极多写极少。为了在这种场景下做 阅读全文
posted @ 2024-04-24 10:38 ahfuzhang 阅读(363) 评论(0) 推荐(0)
分享一个项目:go `file_line`,在编译期得到源码行号,减少运行期runtime消耗
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 file_line https://github.com/ahfuzhang/file_line Like __FILE__/__LINE__ of C: u 阅读全文
posted @ 2024-03-26 16:26 ahfuzhang 阅读(246) 评论(0) 推荐(1)
【踩了一个坑】为什么 golang struct 中的 slice 无法原子赋值
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 有这样一个结构体: type MySt struct{ Field []byte } 我在数组排序中想要交换值: func Swap(arr []MySt, 阅读全文
posted @ 2024-01-20 08:13 ahfuzhang 阅读(45) 评论(0) 推荐(0)
【笔记】学到几个 golang 代码小技巧
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更加优雅 myfunc()() 这样的函数调用 假设调用一个函数写成myfunc()(),第一反应是“ 阅读全文
posted @ 2023-11-30 18:49 ahfuzhang 阅读(80) 评论(0) 推荐(0)
【学到一个新名词】String interning(字符串驻留/字符串内部化)
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在阅读 VictoriaMetrics v1.95.1 的命令行手册的时候,发现这样一段: -internStringCacheExpireDuration 阅读全文
posted @ 2023-11-23 15:46 ahfuzhang 阅读(674) 评论(0) 推荐(1)
【记录一个问题】golang 中的 ecdsa(椭圆曲线加密) 算法很慢,因为用到了系统调用
摘要:代码中使用了椭圆曲线算法来签名,实际运行中发现不够快: func BenchmarkECDSA(b *testing.B) { privateKeyInst, err := parseSignatureKey(privateKey) if err != nil { b.Error(err.Error 阅读全文
posted @ 2023-11-06 15:58 ahfuzhang 阅读(139) 评论(0) 推荐(0)
分享一个项目:`learning_go_plan9_assembly`, 学习 golang plan9 汇编
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 近期在学习 golang plan9 汇编,总算基本做到了手写汇编,并整理了很多笔记。 plan9 汇编的资料少,难学,难用。可能也有想学习汇编的人会遇到与我 阅读全文
posted @ 2023-11-02 15:10 ahfuzhang 阅读(198) 评论(0) 推荐(0)
golang 中使用 writev (sendmsg) 系统调用来一次发送多块数据
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 writev,或者说 sendmsg 等系统调用,能够发送多个数据块。从节约系统调用次数的角度说,这个 api 非常好。 下面演示如何在 golang 中使用 阅读全文
posted @ 2023-10-27 17:53 ahfuzhang 阅读(197) 评论(0) 推荐(0)
fasthttp 中如何使用 linux 系统调用 `sendfile`
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 接上一篇:fasthttp 中如何使用Transfer-Encoding: chunked 方式的流式内容输出 首先是找了一个库,封装了 linux 下的 s 阅读全文
posted @ 2023-10-26 16:09 ahfuzhang 阅读(82) 评论(0) 推荐(0)
fasthttp 中如何使用`Transfer-Encoding: chunked` 方式的流式内容输出
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 具体的思路是这样:通过 RequestCtx 的 Conn() 方法,获得 tcp 套接字。然后直接在 tcp 套接字上 Write 流式内容就行。 上代码: 阅读全文
posted @ 2023-10-26 15:58 ahfuzhang 阅读(262) 评论(0) 推荐(0)
【发现一个问题】使用 fastcgo 导致额外的 `runtime._System` 调用的消耗
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 为了避免 cgo 调用浪费太多资源,因此使用了 fastcgo(github.com/petermattis/fastcgo) 这个库。 单单跑 benchm 阅读全文
posted @ 2023-10-23 09:54 ahfuzhang 阅读(397) 评论(0) 推荐(0)
玩一玩 golang 汇编(二)
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 上次玩 golang 汇编是使用了一个 python 的 intel 汇编转换 plan9 汇编的工具,很不好用。 本次试试一些 golang 实现的工具。 阅读全文
posted @ 2023-10-19 15:49 ahfuzhang 阅读(146) 评论(0) 推荐(0)
【介绍一个工具】图形化界面查看一个 golang 二进制文件的汇编代码
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 通常,可以通过命令行工具,来查看一个代码文件对应的汇编代码: go build -gcflags -S api.go // 或者 go tool compil 阅读全文
posted @ 2023-10-19 11:31 ahfuzhang 阅读(239) 评论(0) 推荐(0)
【发现一个问题】macos m2 下无法使用 x86_64-linux-musl-gcc 链接含有 avx512 指令的 c 代码
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 一开始是使用 golang 中的 cgo 来编译: env CC= c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \ CGO 阅读全文
posted @ 2023-10-17 18:30 ahfuzhang 阅读(414) 评论(0) 推荐(0)
interface{}类型 + fmt.Sprintf() 导致栈逃逸
摘要:作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 对部分代码进行了栈逃逸检查: go build -gcflags="-m -m" pkg/*.go 2>&1 | grep -v "pb.go" 类似的位置, 阅读全文
posted @ 2023-10-13 17:26 ahfuzhang 阅读(125) 评论(0) 推荐(0)
 

上一页 1 2 3 4 5 下一页

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3