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