• 技术文章 >后端开发 >Golang

    go语言有gc吗

    青灯夜游青灯夜游2022-11-25 16:45:36原创78

    go语言有gc。GC是指垃圾回收,是一种自动内存管理的机制;go语言支持GC,Go语言中对象内存空间的回收是通过GC机制来完成的。对于Go语言而言,Go语言的GC使用的是无分代(对象没有代际之分)、不整理(回收过程中不对对象进行移动与整理)、并发(与用户代码并发执行)的三色标记清扫算法。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

    GC机制是在Java语言被广泛使用之后所火起来的,像后来的脚本语言Python都支持GC,GO也支持GC。

    Go语言和C/C++语言的一个显著的特点是Go中对象内存空间的回收是通过GC机制来完成的,不需要像C++一样通过程序员的手动申请和释放,所以Go中相对不容易出现内存泄漏。今天我们就来聊聊Go中的GC机制。

    什么是GC,又有什么用?

    GC,全称 Garbage Collection,即垃圾回收,是一种自动内存管理的机制。

    当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内存申请时候复用,或者将其归还给操作系统,这种针对内存级别资源的自动回收过程,即为垃圾回收。而负责垃圾回收的程序组件,即为垃圾回收器。

    垃圾回收其实一个完美的 “Simplicity is Complicated” 的例子。一方面,程序员受益于 GC,无需操心、也不再需要对内存进行手动的申请和释放操作,GC 在程序运行时自动释放残留的内存。另一方面,GC 对程序员几乎不可见,仅在程序需要进行特殊优化时,通过提供可调控的 API,对 GC 的运行时机、运行开销进行把控的时候才得以现身。

    通常,垃圾回收器的执行过程被划分为两个半独立的组件:

    GC中的根对象

    根对象在垃圾回收的术语中又叫做根集合,它是垃圾回收器在标记过程时最先检查的对象,包括:

    GC的实现方式

    所有的 GC 算法其存在形式可以归结为追踪(Tracing)和引用计数(Reference Counting)这两种形式的混合运用。

    目前比较常见的 GC 实现方式包括:

    Go中GC的实现方式

    对于 Go 而言,Go 的 GC 使用的是无分代(对象没有代际之分)、不整理(回收过程中不对对象进行移动与整理)、并发(与用户代码并发执行)的三色标记清扫算法。【相关推荐:Go视频教程

    原因如下:

    更多编程相关知识,请访问:编程视频!!

    以上就是go语言有gc吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Golang go语言 Go
    上一篇:golang中切片是啥 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• go语言空结构体的用法是什么• go语言中的rune怎么获取字符长度• go语言怎么进行类型转换• go语言和swoole的区别是什么• 聊聊go语言中的切片(slice)
    1/1

    PHP中文网