La Web del Programador: Comunidad de Programadores
 
    Pregunta:  634 - COMPILADOR MICROSOFT VC++ V6.0 ¿CÓDIGO LENTO?
Autor:  Víctor Reguengo
He migrado una aplicacion realizada con la version 5.0 del compilador de Microsoft al entorno ce la version 6.0, sin tocar los ´settings´, que incluyen optimizacion para generacion de codigo con la maxima velocidad, y resulta que el código generado se ejecuta como 3 veces más lento que con la versión anterior.
Y todavia Microsoft dice que la version 6.0 es mas eficiente. ¿Sera verdad o es un farol ?
Me gustaría saber si a alguien le sucede lo mismo y como ha logrado solucionarlo.
Gracias por anticipado

  Respuesta:  Lagor
Es posible que Microsoft tenga razón afirmando que Visual 6 sea más eficiente, pero no más rápido.
Eficiente en el hecho de que los programas salen más pequeños y compactos lo cual significa más lentitud. Existe una constante en la programación que es la de Memoria/Velocidad = cte. No hay que entender esto matemáticamente, sino filosóficamente. Si algo ocupa poca memoria es porque hace muchas llamadas y bucles, lo que repercute en velocidad. Si este hecho lo extrapolamos a un plataforma INEFICIENTE como es Windows (NT, 95, 98...), nos encontramos que para hacer cualquier bobada, Windows consume cientos de recursos gestionando la memoria, el disco, el swap, los drivers. Todo esto gracias a las SDK, MFC, etc... Como Visual C++ no es C++ a bajo nivel, sino a altísimo nivel, el usuario pierde el control totalmente de sus acciones para dejárselas a las SDK. Entonces, sí, el código puede ser optimizado, pero si en la versión 6 las SDK, MFC y el propio Windows hace MAS cosas por debajo, carga más drivers, inicializa más dispositivos INDISPENSABLES, el resultado es que CUALQUIER programa SIEMPRE será más lento.
Y ciertamente yo no he notado cambios de velocidad en Visual 6 salvo para notar mayor lentitud en el mismo programa y en los programas que genera.