#BPF
golang 常见类型字节数
ebpf分析golang程序时,离不开对参数大小的判断。这里列出来一些基本类型的大小,并通过汇编对应验证函数的方式来肯定判断结果。
信息
这里列出基本类型及其作为参数传递时,占用的空间大小如下表。
| 类型 | 长度 | 说明 |
|---|---|---|
| 指针 | 8B | 64位机为 8Byte, 32位机位4Byte |
| context | 16B | interface 类型。其中,前8B是类型信息,后8B是对象的指针信息 |
| interface | 16B | 2 个指针,详见draveness-go-interface,或者 runtime/runtime2.go iface/eface 定义 |
| int64 | 8B | - |
| int | 8B | 64位机为 8Byte, 32位机位4Byte |
| string | 16B | 8B 地址 + 8B string长度 |
| slice | 24B | 8B地址 + 8B slice 成员数量 + 8B slice capability |
| func | 8B | func 作为函数参数时,传递的是 func 的地址 |
需要注意的是,作为函数参数传递时,golang会对参数按照 8B 进行对齐。
·2min·李岩
golang 常见类型字节数challenges of bpf tracing go
·1min·李岩
challenges of bpf tracing gocentos 安装docker并构建golang镜像
工作需要(抛弃了kubectl搞一套环境的方法),需要在centos8上构建一套docker镜像并运行golang程序。这里记录下docker安装及golang程序打包镜像的过程。
·1min·李岩
centos 安装docker并构建golang镜像eBPF及其对可观测的意义【译文】
最近在做 eBPF 的技术调研。看到很多对 eBPF 的介绍。为了加强对内容的理解,笔者选择了其中的一篇尝试翻译。本着便于笔者自己理解的角度,很多内容加入了自己的一些理解,因此并不能算是严格意义上的“翻译”。文章涉及了 eBPF 的介绍、优势、不足,算是一篇 eBPF 的很好的介绍。现在把它贴上来,算是纪念自己的第一篇“译文”。
原文地址:What Is eBPF and Why Does It Matter for Observability?
·11min·李岩
eBPF及其对可观测的意义【译文】centos 构建 local-k8s
工作原因,需要安装一个 local-k8s。中间碰了很多坑,做个记录。 环境:Linux test 4.18.0-193.el8.x86_64
·2min·李岩
centos 构建 local-k8s