De hecho, hace tiempo se programaba prestando un 110% de atención a la eficiencia del software, actualmente se mira si compila y funciona y pa alante... y así nos va.
Una de las cosas buenas de C es que permite apurar al máximo esa eficiencia de código.
Es decir, que dos programas pueden hacer lo mismo, teniendo uno la mitad de instrucciones que otro.
Esto es básicamente lo que hay detrás de lo que se conoce como desenrollado de bucles.
Por tanto, cuando conviertes una serie de sentencias escritas en C o cualquier lenguaje a lenguaje ensamblador, y miras cuántos ciclos de reloj son necesarios para llevar a cabo cada una de esas instrucciones, y el hecho de dependencia entre ellas, o sea, que para que se ejecute una instrucción posterior que depende de un dato de la anterior tiene que ESPERAR A QUE ACABE
comprendes que esas esperas son muy comunes, y son debidas a una mala programación generalmente.
Hay programas que se consiguen dejar en la mitad de líneas de código, y por tanto, se reducen las esperas innecesarias y aumenta la velocidad de forma increíble.
¿Desde cuándo no es bueno hacer código eficiente? ¿No te gusta que tu ordenador funcione rápido?
Sinceramente, no tengo ni pajolera idea de esos intrinsics, pero si has programado en C y otros lenguajes, Java por ejemplo, verás que en Java la reserva de memoria, por ejemplo, es automática, y en C hay que hacer un malloc, o sea, en C la tienes que hacer tú. De igual manera, en Java los punteros son internos, es decir, tú no tienes acceso a ellos. De esa manera, puedes optimizar muchas cosas (lo de la memoria es por poner un ejemplo).
Comenté lo del desenrollado de bucles porque me pareció interesante,
aunque os hayais ido del tema principal
Cita de: Bragi en Septiembre 05, 2014, 09:54:55 amaunque os hayais ido del tema principalA que esto sigue siendo un post? crei que lo convirtieron en un chat...