Melhorias no Javascript do Firefox 3.6
David Mandelin, atualmente um dos principais desenvolvedores do motor de JavaScript do Firefox (o tracemonkey) postou no blog hacks. mozilla.org alguns detalhes de como o JavaScript será mais rápido no Firefox 3.6. Não haverá nada quente como um JIT, como houve no Firefox 3.5, mas ele traz uma porção de pequenos detalhes que o pessoal da Mozilla acredita que fará a diferença. Entre eles:
JIT habilitado na 'GUI' do Firefox
A própria interface do Firefox tem bastante parte feita em JavaScript, porém esse código não estava usando o JIT do tracemonkey - como essa porção do código era relativamente nova, o pessoal da Mozilla decidiu deixar habilitado o JIT apenas para páginas, e não para a interface do Firefox. Na versão 3.6, o JIT estará habilitado para ambos, a renderização de páginas e a renderização do próprio Firefox
Melhorias no Coletor de Lixo
O coletor de lixo no Firefox 3.5 poderia interferir no processamento de animações em JavaScript. Uma das formas de lidar com o problema é que agora a liberação de memória é feita em outra thread - segundo o post, os efeitos serão ainda mais notáveis em máquinas com mais de um processador. Outra parte importante é que agora o GC e o JIT conversam entre si. No Firefox 3.5, o coletor de lixo poderia limpar da memória algum objeto que tivesse sido usado no JIT, e depois o tracemonkey teria de fazer o trace desse código de novo. No Firefox 3.6, se um objeto está sendo usado em algum trace, ele não será recolhido pelo coletor de lixo.
Fazendo o trace de mais objetos JavaScript
Agora mais parte do código é analizada pelo tracemonkey para gerar os traces do JIT:
- Propriedades DOM (no Firefox 3.4 apenas métodos DOM são analizados)
- Closures
- o arguments
- switch
Isso tudo deve ser muito útil para quem escreve código JavaScript com jQuery, por exemplo.
Melhorias em Strings e Expressões Regulares
Incluindo o aumento de velocidade em concatenações de strings
Esse é um resumo do texto em: http://hacks.mozilla.org/2010/01/javascript-speedups-in-firefox-3-6/
Syndicated 2010-01-16 21:46:00 (Updated 2010-01-16 21:46:18) from devlog