介绍 编写 Go 代码不需要像写 C/C++ 那样手动的 malloc和 free内存,因为 malloc 操作由 Go 编译器的逃逸分析机制帮我们加上了,而 free 动作...
介绍 编写 Go 代码不需要像写 C/C++ 那样手动的 malloc和 free内存,因为 malloc 操作由 Go 编译器的逃逸分析机制帮我们加上了,而 free 动作...
介绍 Go 语言较之 C 语言一个很大的优势就是自带 GC 功能,可 GC 并不是没有代价的。写 C 语言的时候,在一个函数内声明的变量,在函数退出后会自动释放掉,因为这些变...
虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1...
介绍 了解操作系统对内存的管理机制后,现在可以去看下 Go 语言是如何利用底层的这些特性来优化内存的。Go 的内存管理基本上参考 tcmalloc 来实现的,只是细节上根据自...
介绍 当我解决问题时,尤其是新问题,我不会一上来就想着能不能使用并发来处理。我会首先想出一个顺序执行的解决方案。然后在可读性和技术评审后,我会开始考虑并发处理能不能让问题得到...
介绍 上一篇文章我对操作系统级别的调度进行了讲解,这对理解 Go 语言的调度器是很重要的。这篇文章,我将解释下 Go 语言的调度器是如何工作的。依旧专注在上层抽象的基本概念上...
调度相关的一系列文章主要参考 Scheduling In Go : Part I - OS Scheduler 翻译来的。因为在学习的过程中偶然发现,感觉总结得蛮好的,就不造...
介绍 要搞明白 Go 语言的内存管理,就必须先理解操作系统以及机器硬件是如何管理内存的。因为 Go 语言的内部机制是建立在这个基础之上的,它的设计,本质上就是尽可能的会发挥操...
这部分看的是 golang1.2 的源码(其实是 3 年前看的,最近又拿出来复习整理了下),C语言实现的。 如果只是为了学习,而不是为了实际参与项目的开发,还是建议阅读低版本...
原文地址: Allocation Efficiency in High-Performance Go Services, 没有原模原样的翻译, 但不影响理解。 关于工具 我们...
先抛出几个问题 声明一个 slice 并赋值为 nil, 如 var slice []int = nil,此时 len(slice) 的运行结果是什么? func(arr [...