Summary
#
headless: true
bookhidden: true
#
SUMMARY
preface
introduction
setup
Specification
[go spec](Specification/go spec.md)
Toolchain
[instrumentation in go](Toolchain/instrumentation in go.md)
Compiler
[aliases, simple and efficient](Toolchain/Compiler/aliases, simple and efficient.md)
[builds & linker"s timeline](Toolchain/Compiler/builds & linker"s timeline.md)
[built-in functions optimizations](Toolchain/Compiler/built-in functions optimizations.md)
[how “go build” works](Toolchain/Compiler/how “go build” works.md)
[how are loops translated to assembly](Toolchain/Compiler/how are loops translated to assembly.md)
[how to take advantage of symbols tables](Toolchain/Compiler/how to take advantage of symbols tables.md)
[inline strategy & limitation](Toolchain/Compiler/inline strategy & limitation.md)
[introduction to the escape analysis](Toolchain/Compiler/introduction to the escape analysis.md)
[introduction to the go compiler ssa backend](Toolchain/Compiler/introduction to the go compiler ssa backend.md)
[introduction to the go compiler](Toolchain/Compiler/introduction to the go compiler.md)
[language semantics on escape analysis](Toolchain/Compiler/language semantics on escape analysis.md)
[memory safety with bounds check](Toolchain/Compiler/memory safety with bounds check.md)
[overview of the compiler](Toolchain/Compiler/overview of the compiler.md)
[slice and memory management](Toolchain/Compiler/slice and memory management.md)
[understanding compiler directives](Toolchain/Compiler/understanding compiler directives.md)
Linker
[build a better linker](Toolchain/Linker/build a better linker.md)
[builds & linker"s timeline](Toolchain/Linker/builds & linker"s timeline.md)
[how “go build” works](Toolchain/Linker/how “go build” works.md)
[object file & relocations](Toolchain/Linker/object file & relocations.md)
ABI
[go register ABI](Toolchain/ABI/go register ABI.md)
AST
[visualize your go code](Toolchain/AST/visualize your go code.md)
Memory
MemoryAllocation
[demystifying memory management in modern programming languages](Memory/MemoryAllocation/demystifying memory management in modern programming languages.md)
[memory management and allocation](Memory/MemoryAllocation/memory management and allocation.md)
[memory management and memory sweep](Memory/MemoryAllocation/memory management and memory sweep.md)
[slice and memory management](Memory/MemoryAllocation/slice and memory management.md)
[visualizing memory management in go](Memory/MemoryAllocation/visualizing memory management in go.md)
GarbageCollection
[an insight into go garbage collector](Memory/GarbageCollection/an insight into go garbage collector.md)
finalizers
[go GC: latency problem solved](Memory/GarbageCollection/go GC: latency problem solved.md)
[go GC: prioritizing low latency and simplicity](Memory/GarbageCollection/go GC: prioritizing low latency and simplicity.md)
[how does GC mark the memory](Memory/GarbageCollection/how does GC mark the memory.md)
[how does GC watch your application](Memory/GarbageCollection/how does GC watch your application.md)
[how does go stop the world](Memory/GarbageCollection/how does go stop the world.md)
[keeping a variable alive](Memory/GarbageCollection/keeping a variable alive.md)
[memory management and allocation](Memory/GarbageCollection/memory management and allocation.md)
[memory management and memory sweep](Memory/GarbageCollection/memory management and memory sweep.md)
[the garbage collection handbook](Memory/GarbageCollection/the garbage collection handbook.md)
[the rules of unsafe.Pointer and uintptr](Memory/GarbageCollection/the rules of unsafe.Pointer and uintptr.md)
[tracing garbage collection](Memory/GarbageCollection/tracing garbage collection.md)
Goroutine
[asynchronous preemption](Goroutine/asynchronous preemption.md)
[concurrency & scheduler affinity](Goroutine/concurrency & scheduler affinity.md)
[g0, special goroutines](Goroutine/g0, special goroutines.md)
[goroutine and preemption](Goroutine/goroutine and preemption.md)
[goroutine, os thread, and cpu management](Goroutine/goroutine, os thread, and cpu management.md)
[gsignal, master of signals](Goroutine/gsignal, master of signals.md)
[how does a goroutine start and exit](Goroutine/how does a goroutine start and exit.md)
[how does go recycle goroutines](Goroutine/how does go recycle goroutines.md)
[how goroutine stack size evolve](Goroutine/how goroutine stack size evolve.md)
[improve the usage of your goroutines with GODEBUG](Goroutine/improve the usage of your goroutines with GODEBUG.md)
[observing stack grow and shrink](Goroutine/observing stack grow and shrink.md)
[what does a goroutine switch actually involve](Goroutine/what does a goroutine switch actually involve.md)
[work-stealing in go scheduler](Goroutine/work-stealing in go scheduler.md)
Runtime
[a whirlwind tour of Go’s runtime environment variables](Runtime/a whirlwind tour of Go’s runtime environment variables.md)
Scheduler
[GOMAXPROCS & live updates](Runtime/Scheduler/GOMAXPROCS & live updates.md)
[concurrency & scheduler affinity](Runtime/Scheduler/concurrency & scheduler affinity.md)
[scheduling in go: part i - os scheduler](Runtime/Scheduler/scheduling in go: part i - os scheduler.md)
[scheduling in go: part ii - go scheduler](Runtime/Scheduler/scheduling in go: part ii - go scheduler.md)
[scheduling in go: part iii - concurrency](Runtime/Scheduler/scheduling in go: part iii - concurrency.md)
[work-stealing in go scheduler](Runtime/Scheduler/work-stealing in go scheduler.md)
Monitor
[monitor pattern](Runtime/Monitor/monitor pattern.md)
Synchronization
Locks
[how to reduce lock contention with the atomic package](Synchronization/Locks/how to reduce lock contention with the atomic package.md)
[locks: sync.Mutex internals](Synchronization/Locks/locks: sync.Mutex internals.md)
[mutex and starvation](Synchronization/Locks/mutex and starvation.md)
RaceDetection
[a race detector unfurled](Synchronization/RaceDetection/a race detector unfurled.md)
[race detector with thread sanitizer](Synchronization/RaceDetection/race detector with thread sanitizer.md)
Diagnostics
[diagnostics methods](Diagnostics/diagnostics methods.md)
Debugging
[debugging with delve & coredumps](Diagnostics/Debugging/debugging with delve & coredumps.md)
PProf
[language semantics on memory profiling](Diagnostics/PProf/language semantics on memory profiling.md)
[samples collection with pprof](Diagnostics/PProf/samples collection with pprof.md)
Tracing
[discovery of the trace package](Diagnostics/Tracing/discovery of the trace package.md)
Testing
[Benchmarking in Golang: Improving function performance](Testing/Benchmarking in Golang: Improving function performance.md)
learn-go-with-tests
[practical fuzzing with go](Testing/practical fuzzing with go.md)
[unknown parts of the test package](Testing/unknown parts of the test package.md)
Builtins
map
[concurrent access with maps - part 3](Builtins/map/concurrent access with maps - part 3.md)
[map design by code - part 1](Builtins/map/map design by code - part 1.md)
[map design by code - part 2](Builtins/map/map design by code - part 2.md)
chan
[buffered and unbuffered channels](Builtins/chan/buffered and unbuffered channels.md)
[ordering in select statements](Builtins/chan/ordering in select statements.md)
unsafe
[what is the unsafe package](Builtins/unsafe/what is the unsafe package.md)
context
[context and cancellation by propagation](Builtins/context/context and cancellation by propagation.md)
defer
[defer internals](Builtins/defer/defer internals.md)
[how does defer statement work](Builtins/defer/how does defer statement work.md)
init
[init functions](Builtins/init/init functions.md)
interface
[understand the empty interface](Builtins/interface/understand the empty interface.md)
constants
[learn go constants - a visual guide](Builtins/constants/learn go constants - a visual guide.md)
closure
[how does go implement closures](Builtins/closure/how does go implement closures.md)
pointer
[design philosophy on data and semantics](Builtins/pointer/design philosophy on data and semantics.md)
[language mechanics on stacks and pointers](Builtins/pointer/language mechanics on stacks and pointers.md)
[should i use pointer instead of a copy of struct](Builtins/pointer/should i use pointer instead of a copy of struct.md)
pool
[understand the design of sync.pool](Builtins/pool/understand the design of sync.pool.md)
random
[how are random numbers generated](Builtins/random/how are random numbers generated.md)
string
[string & conversion optimization](Builtins/string/string & conversion optimization.md)
syscall
[how does go runtime handles syscall](Builtins/syscall/how does go runtime handles syscall.md)
timer
[timers" life cycle](Builtins/timer/timers" life cycle.md)
panic&recover
[how does a program recover](Builtins/panic&recover/how does a program recover.md)
Patterns
[rethinking classical concurrency patterns](Patterns/rethinking classical concurrency patterns.md)
Plugins
[go plugin system](Plugins/go plugin system.md)
Types
[duck typing, structural typing, nominal typing](Types/duck typing, structural typing, nominal typing.md)
[structural typing and norminal typing](Types/structural typing and norminal typing.md)
Infrastructure
[playing with go module proxy](Infrastructure/playing with go module proxy.md)
[what is a goproxy](Infrastructure/what is a goproxy.md)