【Golang】golang中临时对象池sync.Pool

sync.Pool简介

  sync.Pool是属于go标准库sync包,是一个可以分别存取的临时对象的集合。但是不是一个缓存(Cache)。

    官方手册的介绍

    

sync.Pool的由来

    Go语言是自动回收垃圾的,不用手动,这样可以减少程序员负担并提高开发效率。但是这样也有一定的副作用,在方便的同时,自动GC也会给程序带来一定的性能问题,并且在高负载的情况下,不能够随意产生太多的垃圾,这样会给GC带来很大的负担并影响程序效率。后来Go官方推出这个sync.Pool包,它主要的作用就是用来保存并临时复用对象,以减少内存的分配,减轻GC的压力。

哪些框架用了sync.Pool

    1.ECHO框架(golang的一款轻量级的web框架),Echo框架的路由除了路由基于 radix tree,还使用了sync.Pool来复用内存,减少路由对内存的占用。

    

     http://go-echo.org/guide/routing/

    2.Gin框架(也是go开发的一款web框架),也是用来sync.Pool。

sync.Pool主要就两个方法

     

原文地址:https://www.cnblogs.com/songgj/p/10513863.html