golang Map和指针优化

小编不啰嗦,直接上代码:
在这里插入图片描述
执行结果:
在这里插入图片描述

这里的内存分配容量和次数都为0,因为此次定义的数据量较小,直接忽略不计。

结果:带指针的结构明显执行速度比值传递快。
为什么会发生这样的情况呢,而且在我以前的文章中也能找到,频繁的带入指针,
还会影响到Gc回收,造成压力,那么在此处,为何性能快了这么多。

原因:值传递,传入过去会分配两个内存空间,意思是内存会分配两个容量存储。
而直接使用指针的话,可以直接指向之前的地址,而无需分配内存了,这样能极大地加快效率。
这个时候就需要区分定义:
go自带类型,使用值传递,不为不必要的性能去造成gc压力。
自定义类型,使用指针,尤其是大型结构。

初始化提示。 在使用make等允许初始化容量的话,建议根据这个容量的大小,直接对应分配具体的大小,这样可以减少内存分配,而且数组等一些类型都是以double形式进行新增内存容量的,这个时候,这样的操作就非常有必要了。 这个初始化也做了实现,自己去做吧,我就不提供代码了。 有不解之处,或者有建议的话,可以详细交流。