Investigacion Optimizacion de Codigo
Investigacion Optimizacion de Codigo
Investigacion Optimizacion de Codigo
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
INSTITUTO TECNOLOGICO
SUPERIOR DE ALVARADO
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Materia:
Lenguajes y Autómatas ll
Semestre-Grupo:
6YA
Producto Académico:
Trabajo de Investigación
Presenta:
Martínez Cruz Jossue Noé 176Z0707
Docente:
Ing. Gabriela Hernández Cruz
1
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
Contenido
INTRODUCCIÓN .................................................................................................... 3
OBJETIVO:.............................................................................................................. 4
❖ OPTIMIZACIÓN DE CÓDIGO: ........................................................................ 5
Elimina código innecesario: ............................................................................. 8
Saca código de los bucles: ............................................................................... 8
Pasar objetos por referencia mejor que por valor: ......................................... 9
Minimiza y optimiza el acceso a disco:............................................................ 9
CONCLUSIÓN ...................................................................................................... 11
BIBLIOGRAFÍA ..................................................................................................... 12
2
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
INTRODUCCIÓN
En los primeros tiempos de la informática, programar exigía utilizar lenguajes
muy próximos a la plataforma de ejecución.
3
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
OBJETIVO:
Realizar Un Trabajo De investigación referente a las nuevas técnicas de
optimización de código.
4
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
❖OPTIMIZACIÓN DE CÓDIGO:
En los primeros tiempos de la informática, programar exigía utilizar lenguajes muy
próximos a la plataforma de ejecución.
Quizás tampoco tanta, porque los compiladores incorporan técnicas que permiten
mejorar el rendimiento del código generado.
5
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
También es fundamental garantizar que el código no será menos eficiente que antes
de optimizarlo. Por ejemplo, el desenrollado de bucles (loop unrolling, replicar N
veces el código de un bucle) puede reducir el tiempo de ejecución al simplificar
instrucciones innecesarias (p.ej. saltos), aunque al hacerlo puede hacer crecer el
tamaño del código.
Dado que el tamaño del código puede tener consecuencias a nivel de acceso a
caché y a la memoria, podría pasar que el programa optimizado acabara siendo
más lento que el original.
Existen diferentes técnicas para optimizar el código, cada una de las cuales
intenta mejorar un aspecto diferenciado del código. En general pueden clasificarse
en dos categorías, las de flujo de datos (data-flow) y las de flujo de control (control-
flow).
Por contra, las optimizaciones del flujo de control intentan utilizar las instrucciones
de salto condicional e incondicional de la forma más eficiente posible (ya sea
desplazando código o eliminando saltos innecesarios).
6
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
Puede definirse también una tercera categoría, las optimizaciones de bucles (loop
optimization), intenta mejorar el rendimiento de las instrucciones iterativas
como for, while … do o repeat … until. En este caso, los cambios realizados al
código del bucle afectan tanto al flujo de datos como al flujo de control.
La ventaja de todas estas técnicas es que se aplican de forma automática cada vez
que compilamos nuestro código, de forma que podemos centrarnos en hacer
nuestro código legible en lugar de intentar optimizar «a mano». Como dijo Donald
Knuth, «la optimización prematura es la raíz de todos los males».
7
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
Clasificación de optimizaciones:
1. Dependientes de la máquina.
* Asignación de registros.
* Instrucciones especiales (“idioms”).
* Reordenación del código.
2. Independientes de la máquina.
* Ejecución en tiempo de compilación.
* Eliminación de redundancias.
* Cambio de orden.
* Reducción de frecuencia de ejecución (invariancias).
* Reducción de fuerza.
Tras esta breve introducción pasemos a ver cuáles son las más
técnicas más destacadas:
8
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
Ejemplo:
function valores_por_referencia (&$var)
{
$var++;
}
$a=5;
valores_por_referencia ($a);
// $a será 6 aquí
9
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
Por último, veamos algunos de los consejos más comunes de optimización (PHP)
que publicamos hace ya algún tiempo.
10
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
CONCLUSIÓN
En este trabajo de investigación podemos apreciar el origen de la
transformación de lo que fue el código, éste al ser un lenguaje algo extenso
se buscó la manera de optimizar y comprimir dicho código con el fin de
hacerlo más eficiente y más portable a los usuarios que manejaban dicho
lenguaje de programación o también de operaciones para esto utilizaron
técnicas que te permitían optimizar el código relacionando caracteres como
representantes de líneas de código extensas a este se le denomina variable
representante hoy en día la podemos encontrar en cualquier método o
constructor de un lenguaje de alto nivel.
11
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO
Departamento de Ingeniería en
Reporte de Práctica
Sistemas Computacionales.
BIBLIOGRAFÍA
robert. (02 de 10 de 2016). http://informatica.blogs.uoc.edu. Obtenido de
informatica.blogs.uoc.edu:
http://informatica.blogs.uoc.edu/2016/05/02/optimizacion-de-codigo-un-
codigo-mas-eficiente/
TuFunción. (18 de 10 de 2017). http://www.tufuncion.com/optimizar-codigo.
Obtenido de tufuncion.com/optimizar-codigo:
http://www.tufuncion.com/optimizar-codigo
12