Go 语言的垃圾回收机制概览
3月 22, 2021
之前已经看过了 常见的垃圾回收算法,有了一定的基础,现在再来了解下 Go 语言的垃圾回收机制。 三色抽象 # Go 语言如今已经演变成增量式的垃圾回收策略,即不是一口气运行 GC,而是和 Mutator 交替运行的,因此不会长时间妨碍到 ...
之前已经看过了 常见的垃圾回收算法,有了一定的基础,现在再来了解下 Go 语言的垃圾回收机制。 三色抽象 # Go 语言如今已经演变成增量式的垃圾回收策略,即不是一口气运行 GC,而是和 Mutator 交替运行的,因此不会长时间妨碍到 ...
程序中的数据和变量在运行时会被分配到程序所在的虚拟内存中,内存空间包含两个重要的区域:堆(heap)和栈(stack),函数调用的参数、返回值以及局部变量大都会被分配到栈上,这部分内存由编译器进行管理 ...
本来想直接看下 Go 的垃圾回收机制,但是发现自己现在对内存管理和垃圾回收的了解都比较少,所以只能先来研究下常见的垃圾回收算法了,本篇即是《垃圾回收的算法与实现》的学习笔记,目标是能够描述清楚各种 GC 算法的复 ...
同很多其他语言如 Python、JavaScript 一样,在 Go 中涉及到复制数据的场景也需要注意深拷贝和浅拷贝的问题。 深拷贝和浅拷贝 # Go 的数据类型可以分为值类型和引用类型两种。值类型的变量和变量的数据都是 ...
操作系统进程间通信、以及并发的处理方式,是调度器能够高效运行的基础,上篇说了调度器的策略,本篇继续深入调度器的背后,看看进程间通信、同步和并发控制如何支撑着这套现代操作系统的调度机制。内容上是按照进程 ...
操作系统中的调度器有任务调度、I/O 调度(以后再说)、内存调度(之前提到的换页策略)等多种类型,本文主要关注任务调度。在单核多进程并发的环境里,进程之间并不是“并行”执行的,实际上在任何时刻都只有一个 ...
进程模型 # 进程的概念是随着多道批处理系统的概念产生的,MULTICS 之前还叫 Job,后来它为了区别这个 IBM 公司发明的术语改为了 Process,进程不是程序,程序是放入内存的一段数据,而进程是带有状态的一 ...
之前说到了 Goroutine 的运行时调度机制,引发了我对操作系统调度的进一步回忆,发现已经非常模糊,只能从头再来。在很多大型系统中,包括编程语言,都有调度器的概念,其核心的作用都是对有限的处理器资源进行最大化利用。具 ...
继续复习操作系统,话说随着 CPU 计算资源的性能开始过剩,压在内存身上的担子越来越重了,堪称新时期的性能瓶颈,对操作系统来说,内存管理机制也要进行近乎极致的优化才可以充分发挥 CPU 的正常水平。 操作系统对内存管理 ...
正在看王爽的《汇编语言》,因为我在 Mac M1 环境,按书上做汇编实验的话,搜索了一圈发现 DOSBox 应该可以满足我的需要,它是一个跨平台的可以运行 MS-DOS 的模拟器。 DOSBox # 下载地址 https://www.dosbox.com/ 这个模拟器应该是被一些老玩家拿来玩上世纪 80 年代 ...