Você está na página 1de 2

Otimizao nos mnimos detalhes

A otimizao em programa o processo de modifcar um programa para


que ele trabalhe de maneira mais efciente considerando algum aspecto ou
diminuindo o uso de algum recurso.
A seguir, vamos considerar alguns tipos de otimizaes:
Manipulao de Matrizes
int m[![!" ## $%&' grande
Cdigo 1
(or )int i*+"i,"i--. /
(or )int 0*+"0,"0--. /
m[i![0! * i12 - 013" ## (aa uma atribuio no4trivial para evitar
otimizaes de compilador
5
5
Cdigo 2
(or )int i*+"i,"i--. /
(or )int 0*+"0,"0--. /
m[0![i! * i12 - 013" ## i, 0 invertido
5
5
6rimeiramente, precisamos saber como a matriz armazenada na mem7ria.
A matriz pode ser armazenada de duas (ormas:
'rdem da linha maior
'rdem da coluna maior
8ependendo da (orma que a matriz armazenada, teremos uma di(erena
de desempenho por que uma das (ormas (avorece o (uncionamento da
mem7ria cach9 e a outra no. ' :bom; (uncionamento da mem7ria cach9
depende do princ<pio da localidade espacial.
Escolhendo o Algoritmo certo
Cdigo 1
int i, sum = 0;
for (i = 1; i <= N; i++)
sum += i;
printf ("sum: %d\n", sum);
Cdigo 2
int sum = (N * (N+1)) / 2;
printf ("sum: %d\n", sum);
's dois c7digos realizam a mesma tare(a, ou se0a, calculam a soma de
todos os inteiros de = a >. ?ontudo, temos uma melhora signifcativa na
per(ormance quando utilizamos o c7digo 2.

Você também pode gostar