CTTI es exponencial, RTTI es lineal: el coste real de la información de tipos

Fuentes: CTTI is Exponential, RTTI is Linear

En programación se presenta la Información de Tipo en Tiempo de Compilación (CTTI) como una alternativa de 'coste cero' a la Información de Tipo en Tiempo de Ejecución (RTTI), pero esta creencia es engañosa. RTTI almacena los tipos en una tabla cuyo tamaño crece de forma lineal con el número de tipos N, y el código que la consulta permanece constante: un único procedimiento que itera sobre la tabla, sin duplicaciones. Su coste en compilación es además despreciable, porque no requiere especializar nada por tipo. CTTI, en cambio, genera una versión distinta del procedimiento por cada combinación de tipos. Cuando esos parámetros son poliádicos —varios argumentos, varios campos, varias salidas—, el número de instanciaciones pasa de N a N×K, N² o Nᵏ, es decir, un crecimiento exponencial que dispara el tiempo de compilación, el tamaño del binario y el trabajo del comprobador semántico. El artículo, firmado por el creador del lenguaje Odin, sostiene que el supuesto ahorro de CTTI a menudo termina en builds de varios minutos y ejecutables de cientos de megabytes sin que ninguna línea de código concreta pueda identificarse como culpable: el coste emerge de la combinatoria del propio programa. RTTI ofrece a cambio un coste medible, transparente y predecible, mientras que CTTI internaliza un gasto exponencial difícil de cuantificar.