Sou uma pessoa que costuma criar variáveis e coisas do tipo com nomes enormes. Por exemplo:
intquantosDadosOUsuarioInformou=10;
Gostaria de saber se a diferença de performance dos códigos abaixo (apenas modificado o nome das variáveis) seria muito grande, ou significativo.
int quantosDadosOUsuarioInformou = 0;
int contagemQueVaiSerFeitaPeloWhile = 0;
while(quantosDadosOUsuarioInformou < 100000000) {
quantosDadosOUsuarioInformou++;
contagemQueVaiSerFeitaPeloWhile++;
}
e
int a = 0;
int b = 0;
while(a < 100000000) {
a++;
b++;
}
Sem avaliar clareza e outras coisas, apenas performance, mudaria alguma coisa no tempo que o código levaria para ser executado completamente? O segundo código seria mais rápido?
Não vai dar nem um fentossegundo sequer de diferença.
A
alexcostars
Mesmo que o while se repita 100000000 de vezes?
sergiotaborda
alexcostars:
Sou uma pessoa que costuma criar variáveis e coisas do tipo com nomes enormes. Por exemplo:
intquantosDadosOUsuarioInformou=10;
Gostaria de saber se a diferença de performance dos códigos abaixo (apenas modificado o nome das variáveis) seria muito grande, ou significativo.
Não ha qualquer diferença porque isso não interfere em nada. Mesmo que repita para sempre.
Continue usando nomes expressivos que está bom. Nunca use nomes curtos como a , b etc… (a menos que esteja calculando uma forma conhecida como F= ma ou a = (b^2 + sqrt(4ac - a^2)) / 2a )
A
alexcostars
Não, não pretendia mudar, era só curiosidade. Vlw pelos esclarecimentos.
ViniGodoy
É que depois de compilado, os nomes de variáveis desaparecem. Isso aí vira um monte de acesso a registradores, com uma quantidade de nomes bem restrito.
No caso desses dois códigos, o assembly final será exatamente igual, já que eles fazem a mesma coisa.
G
GradeBook
ah Mas me digam se o parser e os seus olhos não terão menos trabalho se os nomes das variáveis forem menores?
Dica: só de olhar um código, é difícil dizer se ele vai ser rapidamente executado ou não (mesmo com muita experiência), a menos que esteja sendo feita alguma coisa muito absurda.
Dica: só de olhar um código, é difícil dizer se ele vai ser rapidamente executado ou não (mesmo com muita experiência), a menos que esteja sendo feita alguma coisa muito absurda.
Uma época acompanhei esse site, mas achei que eles pecaram em não ser mais criteriosos. Alguns artigos aí só falam bobagem, como “a importância de usar final”.
Então, é uma boa procurar também fontes confiáveis de informação, como os artigos do Goetz:
E o trabalho do seu cerebro ?
Se as variáveis tem nomes coerentes como o que representam é muito mais facil entender o codigo. Os olhos são muito rápidos e na maioria das vezes vc lê por comparação de padrãoes e não por juntar letra a letra. Ou seja, é tudo muito mais rápido quando usa variáveis com nomes coerentes. Independentemente do tamanho.
B
Bruno_Laturner
Em códigos compilados não faz diferença, mas em códigos interpretados pode fazer.
Uma diferença significativa é com aplicações web pesadas, com muito código em JavaScript e CSS (veja o código do Google Maps).
A velocidade de início da aplicação depende de você primeiro baixar a aplicação para o teu navegador, e então rodar ela. Arquivos menores são baixados em menos tempo que os maiores, então os otimizadores de código minificam ele, tornando-o menor.
Outro uso dessa técnica é obfuscação de código.
ViniGodoy
Sim. No caso do Java (pergunta do autor do tópico), não faz diferença.
Para java script, com certeza. Mas muitas vezes o problema não está no parser, e sim no fato de se ter que fazer download do script. E scripts grandes tem mais kb do que scripts pequenos. Com ofuscadores, pode-se reduzir muito o tamanho final do arquivo.