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.