O que é monomorfização?
A monomorfização é uma estratégia de compilação para generics que gera uma versão distinta e totalmente especializada do código para cada tipo concreto com que o genérico é instanciado. Cada cópia é otimizada como se tivesse sido escrita à mão para aquele tipo, eliminando o despacho de tipo em tempo de execução. O custo é mais código gerado e compilações mais longas.
Por que isso importa
Generics monomorfizados rodam tão rápido quanto código específico de tipo porque não há indireção, e é por isso que linguagens os escolhem por desempenho. O trade-off frente ao type erasure é código mais rápido versus binários menores e builds mais curtos.
Guias relacionados
What Is Template Instantiation?Template instantiation is the compiler generating concrete code from a generic template for each specific set…
What Is Type Erasure?Type erasure discards specific type parameters at or after compilation, leaving generic code working through…
What Is Trait Object Dispatch?Trait object dispatch calls a method through a runtime pointer to a table of implementations, choosing behavi…