Me parece que estás muy confundido por todo esto. Vamos a abordar algunos de estos mitos que has arrastrado.
La fundición es lenta en comparación con las asignaciones normales.
Eso realmente depende de lo que estés emitiendo. Entre diferentes tipos de direcciones, no; En realidad, el casting es gratuito ya que solo está aplicando una interpretación diferente al mismo valor. Casting entre diferentes anchuras de tipo numérico puede ser un poco más lento (y algunas veces se realiza implícitamente en la asignación) pero sigue siendo muy rápido.
Las llamadas de función son lentas.
Realmente no. No son gratuitos, pero el costo no es lo suficientemente alto como para evitarlos a menos que tenga datos de creación de perfiles que indique lo contrario. Nunca optimice sin una buena razón para hacerlo y prueba de que ayudará. (Para el registro, se sabe que revertí las optimizaciones intentadas que no tenían el equilibrio de ganancias de rendimiento que quería).
Las operaciones binarias son más rápidas que las operaciones normales.
¿Qué es una "operación normal"? FWIW, además es una operación binaria. También lo es la multiplicación. En hardware moderno, ambos son bastante rápidos.Deja que el compilador se preocupe por eso. Es mucho más importante que se concentre en describir lo que está haciendo correctamente.
Ahora, para las cosas que realmente cuestan :
- de E/S.
- Asignación de memoria.
- Copias de memoria.
- Anillos profundamente anidados (o muy largos).
Mantenga sus ojos en aquellos; están donde el software generalmente se vuelve lento. Y siempre elija buenos algoritmos y estructuras de datos.
* "... la conversión es lenta ..." * La conversión, en C, es una operación de tiempo cero en tiempo de ejecución. Sucede * completamente * en tiempo de compilación. De manera similar, las llamadas a funciones no son mucho más rápidas en un lenguaje de alto nivel que en C; * literalmente * simplemente "empuja el valor de retorno en la pila, empuja 0..n args en la pila, ejecuta un salto". ¿De dónde sacas estas "verdades"? Porque encontraría otra fuente. :-) –
fundición es lenta? ¿Cª? Ni siquiera existe en tiempo de ejecución. –
@ T.J. Algunos moldes no son gratuitos. Por ejemplo, lanzar un 'char' a un' doble'. Aún muy barato. –