Skip to content
Opensource internals
  • Posts

Interfaces

Go Removes Interface Calls With PGO: Devirtualization and Inlining Hot Call Sites

Oct 21, 2026 25 min read Jay Hubbert

A PGO profile tells the Go compiler which concrete type dominates each interface call site; the compiler then rewrites the call as a type-assert plus direct call, falling back to …

GoInternalsPgoDevirtualizationInterfaces

Read more →

Go's Interfaces Are Two Words and a Cached itab

Oct 21, 2026 18 min read Jay Hubbert

Interfaces are two machine words, the itab is usually emitted statically by the compiler, and the runtime keeps a lock-protected hash table for the cases it cannot know.

GoInternalsInterfacesRuntimePerformance

Read more →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·