go 优化
qq_31104725
这个作者很懒,什么都没留下…
展开
-
读写锁,无锁,并发单线程与单线程的不同
上一篇博客我介绍了go-cache项目的实现和用法,因为go-cache属于线程安全的,所以大量使用了锁。基于这个前提我就想了解下,在无锁以及有锁,读写锁。下在并发与非并发的情况下会有怎样的性能表现。因为受限硬件环境的不同,所以不同的小伙伴测出来的结果可能不同,但我在这里主要是进行这几种情况的比较,所以只要在同一种环境下就好,话不多说我们先上代码。当前go version is 1.16func TestCache_Add(t *testing.T) { tc := New(NoExpirat.原创 2021-04-16 14:33:46 · 208 阅读 · 0 评论 -
go interface 带来的内存逃逸现象
type I interface { F() int}type A struct{ x int y int}func (a *A) F() int { z := a.x + a.y return z}func test(){ //&A不会发生逃逸现象 0.272 ns/op //var a = &A{} //a.F() //&A不会发生逃逸现象 20.6 ns/op a = &A{} var i I = a i.F()}.原创 2021-03-08 13:54:20 · 638 阅读 · 0 评论