热重启方式 使用负载均衡等技术分批次灰度机器 使用fork系统调用来实现平滑重启 go的平滑重启实现 具体原理就是子进程与父进程共享文件描述符,...
进程、线程、协程 进程:进程是系统进行资源分配的基本单位,有独立的内存空间,单切换代价极高,进程间通信也比较麻烦 线程:线程是CPU调度和分派的...
连连看是一种很受大家欢迎的小游戏。下面四张图给出了最基本的消除规则: 图 A 中出现在同一直线上无障碍的圈圈可以消除;图 B 中两个圈圈可以通过...
为什么要内存对齐 1.平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,...
每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量。这个...
总结 Go的内存结构 每个Go程序进程都由操作系统(OS)预先分配了一些虚拟内存,这是该进程可以访问的全部内存。在这个虚拟内存中实际正在使用的内...
go的GC机制 GO的GC是并行GC,也就是说GC的大部分清理和普通的go代码是同时运行的,这让GO的GC流程比较复杂。 标记清除(Mark A...
go的内存分配 Go在程序启动的时候,会先向操作系统申请一块内存(注意这时还只是一段虚拟的地址空间,并不会真正地分配内存),切成小块后自己进行管...
逃逸对性能的影响 在(1)中,通过一个共享在 goroutine 的栈上的值的例子讲解了逃逸分析的基础。还有其他没有介绍的造成值逃逸的场景。为了...
文集作者