![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
文章平均质量分 63
mqdCha
这个作者很懒,什么都没留下…
展开
-
golang 1.22新特性
可以简单写为for i:=range 10。再也不用写v:=v这样经典的代码了。1 for不再共享循环变量。2 for支持整数范围。原创 2024-06-12 16:21:25 · 209 阅读 · 0 评论 -
Mutex解析
锁的实现一般会依赖于原子操作、信号量,通过atomic包中的一些原子操作来实现锁的锁定,通过信号量来实现线程的阻塞与唤醒。加锁:通过原子操作cas加锁,如果加锁不成功,根据不同的场景选择自旋重试加锁或者阻塞等待被唤醒后加锁解锁:通过原子操作add解锁,如果仍有goroutine在等待,唤醒等待的goroutine自旋:cpu率高,但不用进行上下文切换,适合短时间内的等待。条件:cpu核数大于1。有空闲的P。规定最大自旋次数4。锁不处于饥饿模式。本地运行队列为空。原创 2023-04-05 10:00:45 · 241 阅读 · 0 评论 -
grpc分析
grpc简单分析原创 2023-04-05 10:01:00 · 319 阅读 · 0 评论 -
gorm v2版本
为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。如果在没有任何条件的情况下执行批量更新,默认情况下,GORM 不会执行该操作,并返回 ErrMissingWhereClause 错误。v2版本其实是 v1.20之后的版本,用法有很大的改变。可以使用 Unscoped 找到被软删除的记录。v1 不支持批量插入,v2支持批量插入。v2在连接配置里面修改。原创 2023-04-04 16:19:10 · 436 阅读 · 0 评论 -
golang log日志库优化
通过在此基础上构建高级SugaredLogger,zap允许用户选择何时需要计算每个分配,以及何时他们更喜欢更熟悉、类型松散的API。基于反射的序列化和字符串格式昂贵得令人望而却步——它们是CPU密集型的,并进行许多小的分配。换句话说,使用encoding/json和fmt.Fprintf来记录大量的interface{}s会使您的应用程序变慢。正如其自身的基准套件所衡量的那样,zap不仅比可比的结构化日志包性能更高,而且比标准库更快。zap日志输出,确定类型的输出确实很快,那么不确定类型会怎么处理呢?原创 2023-04-04 16:18:18 · 357 阅读 · 0 评论 -
go fmt分析
从部分源码中可以看出,需要先构建pp一个结构体,结构体中包含一个 buf来存需要标准输出的内容。常用的函数Println调用Fprintln,Printf调用Fprintf。原创 2023-04-04 16:16:36 · 78 阅读 · 0 评论 -
go testing
当一个测试的测试函数返回时, 又或者当一个测试函数调用 FailNow 、 Fatal 、 Fatalf 、 SkipNow 、 Skip 或者 Skipf 中的任意一个时, 该测试即宣告结束。一个基准测试在它的基准测试函数返回时,又或者在它的基准测试函数调用 FailNow、Fatal、Fatalf、SkipNow、Skip 或者 Skipf 中的任意一个方法时,测试即宣告结束。但跟单元测试不一样的是,为了避免基准测试的结果受到日志打印操作的影响,基准测试总是会把日志打印出来。原创 2023-04-04 16:12:29 · 92 阅读 · 0 评论 -
pprof alloc含义解释
heap profile: 16(当前对象): 56010272 (程序申请的内存,堆) [323889(曾经分配过内存的对象): 594740816(曾经分配过的内存)] @ heap/1048576。PauseNs PauseEnd | 每个周期中GC的开始unix时间戳和结束unix时间戳 , 一个周期可能有0次GC,也可能有多次GC,如果是多次,只记录最后一个。有个细节是,如果一个span中可包含多个object,只要一个object在使用,那么算的是整个span。原创 2023-04-04 16:10:15 · 336 阅读 · 0 评论 -
golang ioc容器
绑定对象,是将抽象的实现引入ioc容器的过程。过程中可以确定解析类型、单例或者瞬态。此ioc框架将抽象绑定到具体实现中。可以通过通过函数、变量和结构解决。原创 2023-04-04 16:10:21 · 180 阅读 · 0 评论