![](https://img-blog.csdnimg.cn/direct/ad1149abd4a54f86b76d1c1ea79755af.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
go 基础
文章平均质量分 77
主要是一些 go 基础知识的介绍、使用技巧、使用上的避坑
rain1309
这个作者很懒,什么都没留下…
展开
-
Go 编程技巧:零拷贝字符串与切片转换的高效秘籍
在深入探讨Go语言中字符串与切片类型转换的高效方法之前,让我们先思考一个关键问题:如何在不进行内存拷贝的情况下,实现这两种数据类型之间的无缝转换?本文将详细解析Go语言中字符串(字符类型)和切片的内部结构,并提出一种避免内存拷贝的转换策略。 在Go语言中,字符串是一种特殊的数据结构,其本质上是一个只读的字节数组。它与Redis中的SDS(Simple Dynamic String)数据类型类似,由字符数组和字符长度组成。原创 2024-05-29 09:51:54 · 981 阅读 · 0 评论 -
性能优化利器:揭秘 Go 语言的 go tool trace 分析工具
go tool trace 是 Go 语言提供的一个强大的性能分析工具,它能够对程序运行时的行为进行可视化追踪,帮助开发者深入分析和诊断 GC(垃圾回收)、Goroutine 调度、系统调用阻塞等问题。go tool trace 是 Go 开发者进行性能分析的得力助手。通过上述介绍,我们可以看到它如何帮助我们从不同角度审视程序的运行情况,从而优化性能和解决潜在问题。掌握这一工具,将使你在 Go 语言的性能调优之路上更加得心应手。原创 2024-05-23 22:04:13 · 1302 阅读 · 0 评论 -
Go 并发秘籍:深入解析 sync.Once 的高效单例模式实现
sync.Oncedone是一个用于标记是否已经执行过操作的字段。m是一个互斥锁,用于保证并发安全。为什么done要放置在第一个变量?done作为第一个字段,是因为它是在“热路径”(hot path)中频繁访问的变量。热路径是指程序中经常执行的代码段。将done放在第一个字段,可以减少 CPU 指令,从而提升性能。这是因为访问结构体的第一个字段不需要计算偏移量,直接通过结构体指针即可访问。原创 2024-05-22 11:34:35 · 611 阅读 · 0 评论 -
proto FieldMask 解决部分更新问题
在平时开发的过程中我们经常有部分传参的问题,比如有一个 People 对象,我们只需要更新里面的 name 字段,这个时候我们只需要传递 People.name 就行了,其它 age,sex 等字段就不用传递了,当我们使用 grpc 协议的时候我们往往使用 FieldMask 解决这个问题。原创 2024-05-17 22:23:03 · 371 阅读 · 0 评论 -
一次讲清 go 闭包及问题
在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在支持头等函数的编程语言中实现词法绑定的一种技术。闭包在实现上是一个结构体,它存储了一个函数(通常是其入口地址)和一个关联的环境(相当于一个符号查找表)。环境里是若干对符号和值的对应关系,它既要包括约束变量(该函数内部绑定的符号),也要包括自由变量(在函数外部定义但在函数内被引用),有些函数也可能没有自由变量。原创 2024-05-16 21:01:05 · 1046 阅读 · 1 评论