Davi Eduardo Borges Wall wrote:
> De acordo com o professor de S.O, quando fazemos um IF ou um Loop
> (não sei agora call de procedure) O compilador coloca os desvios da
> instrução na mesma paginação em memória virtual. Consequentemente
> quando isso é carregado para memória real, tudo fica dentro da
> mesma página.
> 
> Agora quando utilizamos Goto o compilador não consegue garantir que
> o desvio será dentro da mesma pagina, ocasionando que o sistema
> solicitará blocos de instruções de outras paginas tornando o sistema
> mais lento.

Isso não faz sentido algum. O goto é convertido em um jump simples, 
dentro do mesmo bloco, e que por sua vez muda o conteúdo de um 
registrador do processador. O problema do goto em nível de otimização é 
que o compilador tem menos informação sobre alocação de variáveis e 
variáveis que não estão mais em uso, fazendo com que em algumas 
circunstâncias ocorra mais passeios entre os registradores do 
processador e a memória, ou o stack. Mesmo assim, nada que um compilador 
decente não consiga minimizar.

--
Joao Morais

Responder a