3.Runtime
Go · 9 notes
- 3.1 Go's G-M-P Schedulerhistorical
The Go scheduler's G, M, and P abstractions, local run queues, work stealing, blocking syscalls, GOMAXPROCS, and asynchronous preemption.
- 3.2 Escape Analysishistorical
How the Go compiler decides whether values can live in stack frames or must escape to longer-lived storage, how to inspect decisions, and why `new` does not imply heap allocation.
- Go Build Processhistorical
From parsing and type checking through SSA/optimization, code generation, linking, modules, and build cache.
- Go Memory Managementhistorical
Stacks, heap, allocation, escape analysis, garbage collection, and observable memory metrics.
- Go/Plan 9 Assemblyhistorical
Reading Go assembler syntax, ABI-sensitive registers, stack frames, and generated machine code.
- Memory Alignment in Gohistorical
Alignment, padding, struct layout, cache effects, and portable reasoning about field order.
- 3.7 Go Garbage Collectionhistorical
Go's concurrent tracing garbage collector, mark/sweep phases, write barriers, GC pacing, GOGC, memory limits, observability, and tuning priorities.
- Go Stack Managementhistorical
Small growable goroutine stacks, stack growth, copying, and escape-driven heap allocation.
- Go Heap Managementhistorical
Go runtime heap allocation, size classes, spans, per-P caches, sweeping, and GC interaction.