Summary

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)