quinta-feira, 21 de fevereiro de 2013

Eu sou um compilador!

I dare you!
Olá, eu sou um compilador!

Eu só escaneio milhares de linhas de código enquanto você lê essa sentença. Eu navego por milhões de possibilidades de otimização de uma única linha de seu código usando centenas de técnicas baseadas na vasta quantidade de pesquisa acadêmica que você gastaria anos para conseguir alcançar, se conseguisse.

Eu não sinto nenhum constrangimento (nem mesmo uma leve culpa) quando eu converto um looping de três linhas em milhares de instruções, só porque desse jeito tudo fica mais rápido.

Não tenho nenhuma vergonha de fazer grandes alterações semânticas em prol da otimização ou de usar os mais sujos truques para tal. E se você não quer que eu faça isso, talvez por um dia ou dois (ou até você esquecer de me configurar para isso), eu me comporte da maneira que você quer que eu me comporte.


Eu posso (e vou) transformar os métodos que estou usando sempre que você quiser, mesmo sem mudar uma única linha de seu código. Eu posso inclusive te mostrar como seu código se parecerá em assembly, em diferentes arquiteturas de processador e em diferentes sistemas operacionais e em quaisquer convenções de assembly que você achar necessário.

Eu posso inclusive adicionar milhares de marcadores em centenas de lugares vão te permitir monitorar cada fase da execução do seu código, e da mesma forma posso tirar todas essas marcações e deixar somente seu código puro.

Depois de tudo isso, ainda posso pegar cada parte do seu código separado, agrupar tudo, organizar e ligar cada parte, estática ou dinamicamente, do jeito que você preferir.

E sim, tudo isso em questão de segundos. Porque, você sabe que eu posso, e você sabe que você não pode!

P.S.: Ah e por falar nisso, você não estava usando nem metade do código que você escreveu. Eu fiz um favor e joguei ele fora. Pelo bem da otimização.

Por que disso: Compiler Optimizations