Cita:
Iniciado por dehm Siempre había pensado que cada compilador estaba optimizado para cada plataforma de hardware. Me quedo perplejo.
Si tu haces un programa en tu máquina y luego pretendes que funcione en la de aquel que te compre una licencia tienes un problema:
* Si el código está optimizado para tu máquina puede que en la suya no funcione correctamente (por ejemplo si su procesador es un AMD y el tuyo un Intel)
* Si el código está optimizado para su máquina... espera, ¿cómo haces esto? te vas a casa de cada cliente y, delante de el, compilas una versión a medida para su máquina? no, verdad?
Al final lo que se suele hacer es una especie de compilación más o menos genérica. Obviamente los procesadores de los PCs suelen tener un juego de instrucciones común y es este juego el que usa el compilador.
Si necesitases sacarle el máximo partido a una máquina en concreto seguramente tendrías que hacer uso de alguna instrucción específica de ese procesador... pero claro, el código generado no sería portable a ninguna máquina que tuviese un procesador diferente porque entonces los juegos de instrucciones no son iguales.
El que piense que la diferencia entre un pentium 2 (si hace tiempo, lo se) y un intel i7 es únicamente la velocidad y cambios internos, que se lo haga mirar... y sin embargo un programa que funcionaba en un pentium 2 es perfectamente capaz de correr en un i7 (obviamos problemas del sistema operativo, eso ya es otro cantar)