Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

26. Técnicas de ajuste de código

Lógica, laços, dados, expressões e rotinas: ajustes locais que precisam ser medidos um a um.

Exemplo de desacoplar um if de dentro de um laço, movendo-o para fora
Tire do laço o que não muda a cada volta.

Resumo

Perguntas-chave

responda de cabeça, depois abra
O que é unswitching?
Tirar de dentro do laço uma decisão que não muda durante ele, criando dois laços (um para cada caso).
O que é um valor sentinela?
Um valor colocado no fim da estrutura para que a busca pare sozinha, eliminando um teste por iteração.
Por que medir cada técnica?
Porque o mesmo ajuste dá ganho numa linguagem ou compilador e nenhum (ou perda) em outro.

Exercícios de fixação

0/5 respondidas
1.
for (...) { if (tipo == SOMA) s += a[i]; else s -= a[i]; }, com tipo fixo no laço. Qual técnica se aplica?
2.
Dois laços seguidos percorrem o mesmo array, um somando e outro achando o máximo. Juntá-los num só é:
3.
Trocar x = i * 8 dentro de um laço por uma soma acumulada x += 8 é exemplo de:
4.
Numa busca linear, colocar o valor procurado no fim do array para eliminar o teste de fim é:
5.
Uma técnica deu 40% de ganho em C++ e piorou o tempo em Java. O que o capítulo conclui?
Seu progresso fica salvo neste navegador.