Golang 性能优化
Golang的 GC全称 GarbageCollection
,即垃圾回收,是一种自动内存管理的机制。
当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内存申请时候复用,或者将其归还给操作系统,这种针对内存级别资源的自动回收过程,即为垃圾回收。而负责垃圾回收的程序组件,即为垃圾回收器。
垃圾回收其实是一个完美的 “Simplicity is Complicated” 的例子。一方面,开发者受益于GC,不用关心、也不需要对内存进行手动的申请和释放操作,GC在程序运行时自动释放残留的内存。另一方面,GC 对开发者几乎不可见,仅在程序需要进行特殊优化时,通过提供可调控的 API,对 GC 的运行时机、运行开销进行把控的时候才得以现身。
通常,垃圾回收器的执行过程会被划分为两个半独立的组件:
赋值器(Mutator):这一名称本质上是在指代用户态的代码。因为对垃圾回收器而言,用户态的代码仅仅只是在修改对象之间的引用关系,也就是在对象图(对象之间引用关系的一个有向图)上进行操作。
回收器(Collector):负责执行垃圾回收的代码。