Jump to content
  • 0

Como ayudar al compilador a generar mejor codigo


nasciiboy
 Share
Followers 1

Question

Hola, el tema es este, ¿como escribir mejor codigo para el compilador?, es decir, que es preferible

 

- funciones pequeñas, funciones muy pequeñas o funciones grandes

- pocos o muchos parametros en funciones

- modificar o no los parametros dentro de la funcion

- modificar los parametros de una funcion o utilizar parametros constantes  utilizar variables nuevas dentro de la funcion

- ayuda en algo establecer el retorno de la funcion como constante

- dos if's vs un switch?

- preincremento, postincremento al mismo tiempo de una asignacion

 

y similares... lo mas cencano que encontre es este post http://cucarachasracing.blogspot.mx/2014/05/como-no-ayudar-al-compilador.html.

 

el punto no es como escribir codigo limpio, sino como el codigo limpio mejor digerido por el compilador...

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

todo depende diría yo... no es lo mismo escribir un script en python que un script en C. Lo que yo me pregunto es si merece la pena escribir para el compilador o si con escribir código limpio bastaría. 

Link to post
Share on other sites
  • 0

LABP: apenas di con el blog de cucarachasracing, esta lleno de buenos post

 

elmoyer: Con codigo limpio basta, manias mias... pasar algunas variables a const mejora unos milisegundos en millones de pruebas, pero hay casos en los que no estoy seguro, por ejemplo, dividi una funcion en 4 pequeñas muy especificas y el desempeño fue peor, lo mismo con dos dos funciones + un switch + una arreglo tuvo mejor rendimiento

 

realizando pruebas, dividir una funcion genera mejor resultado siempre que las rutas de ejecucion no recorran todas las subfunciones (algunas veces), pero quiero saber el porque? se que la calidad del codigo varia de un compilador/interprete a otro (gcc > llvm) en que principios se basan? que diria el programador de dicho compilador?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
×
×
  • Create New...