Faz algum tempo que comecei a escrever sobre performance no javascript, como introdução a uma apresentação de slides deste neste post, mas achei que o assunto era bastante pano pra manda e resolvi repartir as coisas.
Comecei a escrever tanto sobre a importância de alguns cuidados com perfomance que o post deixou de ser direcionado a Javascript e se tornou um relato da minha curta experiência com cuidados com performance – backend e frontend. Meu post inicial virou um rascunho para um post que sairá em breve: Performance – preciso me preocupar *tanto*? – linko-o aqui quando publicar.
Voltando ao Javascript, nunca me preocupei tanto com questões de performance no Javascript – pois não fazia coisas muito complexas até um tempo atrás, e sempre me preocupei mais com questões de performance no backend.
Porém quando a aplicação é maior e você precisa manipular bastante interface, informações e tem interação direta com o usuário acaba percebendo que você já tem diversas classes e todas elas precisam funcionar perfeitamente para não comprometer o funcionamento de nada. Não se preocupar com performance neste caso é perigoso, errado, chato bobo e feio.
Thomas Fuchs (o ninja autor do script.aculo.us) realizou uma série de testes comparando métodos de executar uma mesma ação no JavaScript, e fez isso em quatro navegadores: Firefox, Internet Explorer, Ópera e Chrome.
Javascript ninja
A apresentação respondeu algumas curiosidades e dúvidas, mostrando qual a forma mais performática de executar um loop, um contador, criar arrays e objetos, declarar variáveis, etc…
Extreme JavaScript Performance
Achei a apresentação e testes realizados bem legais, dá para entender melhor e – na medida do possível – alterar o método de desenvolver para uma forma mais performnática.
Compreendo e concordo que performance não é tudo, pois alguns dos métodos mais performáticos não são os mais produtivos – como por exemplo evitar chamar funções dentro de funções.
Mas de qualquer forma, pensar em performance – e endender um pouco melhor como nossos precioso script vai ser interpretado sempre é interessante!