06 2021 档案
摘要:数据结构 defer的数据结构定义在$GOROOT/src/runtime/runtime2.go // 大体定义如下,忽略少部分字段 type _defer struct { sp uintptr //函数栈指针 pc uintptr //程序计数器 fn *funcval //函数地址 link
阅读全文
摘要:数据结构 slice的定义在$GOROOT/src/runtime/slice.go type slice struct { array unsafe.Pointer len int cap int } array指针指向底层数组, len表示切片长度, cap表示底层数组容量 slice创建 通过
阅读全文
摘要:前言 基准测试是测量一个程序在固定工作负载下的性能,Go语言也提供了可以支持基准性能测试的benchmark。 使用方法 下面展示一个基准测试的示例代码来剖析下它的使用方式: func Benchmark_test(b *testing.B) { for i := 0; i < b.N ; i++
阅读全文
摘要:前言 借助gdb来查看go的底层汇编,借此梳理和分析go程序的初始化流程,看看在初始化阶段go都做了哪些工作,对于理解go的工作机制很有帮助。目前是基于go 1.16.4进行的。 gdb调试 在 搭建gdb调试go程序 中已经探究并介绍了gdb的环境搭建、基本使用以及如何利用gdb来调试断点查看函数
阅读全文
摘要:搭建gdb调试go程序 前言gdb安装更新brew查看是否存在gdb镜像安装gdb go build编译gdb执行gdb命令gdb调试问题整理参考 前言 学会使用gdb进行golang的调试,通过一个简单的go程序进行简单入口程序的源码调用顺序的查看。 gdb安装 开发环境是Mac,可以使用brew
阅读全文
摘要:参考 https://www.jianshu.com/p/b2de788c3c6d
阅读全文
摘要:Gorm使用汇总 资料安装数据库配置数据库连接sqlite3mysql 模型定义tag:gorm表名 基础操作新增NewRecord主键检查 & Create 查询First:查询第一条记录Last:查询最后一条记录First(... , pk):根据主键查询记录Where(...) 条件查询条件F
阅读全文