mod_lua no apache e mod_v8

30/12/2008

Duas notícias interessantes do blog do Paul Querna:

O mod_lua foi incluído no apache 2.4. No exemplo em seu blog, ele demonstra que regras complicadas do mod_rewrite poderão ser escritas em lua, usando uma sintaxe de if/else mais comum.

Outro notícia interessante: ele fez um esboço de um módulo para embutir a máquina virtual de Javascript v8 num módulo do apache. Foi feito por enquanto mais por brincadeira, mas vale lembrar que muita gente acredita em JavaScript no lado do servidor.

Via: Ajaxian


Email por Walter Cruz em Lua, JavaScript, Apache
Tags: apache, javascript, lua, tsilva, v8

SquirrelFish Extreme (ou a engine de JavaScript mais rápida de todos os tempos da última semana)

19/09/2008

Eu não disse?

Ontem, o pessoal do webkit publicou em seu blog um post anunciando o SquirrelFish Extreme. Com benchmarks que demonstram que no mesmo período de tempo, o SquirrelFish consegue executar o teste SunSpider muito mais vezes que o Tracemonkey ou o V8.

Entre as novidades dessa engine, está o Polymorphic Inline Cache, que assim como as hidden classes do V8, foi baseado em algoritmos e detalhes da implementação da linguagem Self. Além disso, o Context Threaded JIT, faz a conversão de bytecode para código de máquina (relembrando, o v8 não gera bytecode, vai direto para código de máquina).Regular Expression JIT ajuda na velocidade de expressões regulares. (Você pode estar se perguntando o porque disso. Depois que eu vi que o V8 limitava o tamanho das expressões regulares a 32767 caracteres, e que tinha alguém ultrapassando esse limite, eu comecei a achar que isso deve ser realmente MUITO importante.)

E é claro, não poderiam faltar gráficos:

sfx-perf

Uma curiosidade: Mark Shuttleworth (Canonical) e Ted Leung(Sun), demonstraram na Pycon UK 2008 uma preocupação de que, devido a essas novas engines, JavaScript possa tomar o lugar do Python! (Ao menos é o que diz o blog do Pypy). Será isso um exagero?

Mais benchmarks em http://www.satine.org/archives/2008/09/19/squirrelfish-extreme-fastest-javascript-engine-yet/


Email por Walter Cruz em Python, JavaScript
Tags: javascript, self, squirrelfish, squirrelfish extreme, tracemonkey, v8

Notícia recorrente

05/09/2008
  1. 2 de junho de 2008: SquirrelFish é a engine de JavaScript mais rápida do mundo!
  2. 22 de agosto de 2008: TraceMonkey é a engine de JavaScript mais rápida do mundo!
  3. 1 de setembro de 2008: V8 é a engine de JavasSript mais rápida do mundo!
  4. 1 de abril de 2009: VeryHotSpot é a engine de JavaScript mais rápida do mundo!

Wacky Races at Goodwood Festival of Speed 2008
Creative Commons License photo credit: Lauri Väin


Email por Walter Cruz em Google, JavaScript, Linguagens, Geek life
Tags: javascript, squirrelfish, tracemonkey, v8

V8 x Tracemonkey

04/09/2008

Ok, depois de compilar o v8, eu pensei: e agora? Após ler sobre o tracemonkey, minha idéia caiu no seguinte: eu compilo o tracemonkey e faço testes com ambos.

Eu adaptei o shell script que roda o benchmark do tracemonkey para rodar o mesmo benchmark, só que usando o v8.

chrome teste 1

chrome teste 2

chrome teste3

Sobre as duas VMS:

  • O líder do desenvolvimento do V8 é Lars Bak, que foi o líder técnico do Strongtalk e do HotSpot (Java) e também um grande contribuidor da maquina virtual original do Self. Segundo o projeto, o V8 é otimizado para acesso de propriedades e tem um coletor de lixo agressivo.
  • O Tracemonkey usa código do Tamarin, a máquina virtual de JavaScript da Adobe, que doou o código para a Mozilla Foundation. A otimização e o JIT é feito usando um processo chamado Tracing Trees. Se você estiver disposto a ler um paper comprido, complicado e interessante, pode ler o Incremental Dynamic Code Generation With Trace Trees.

No geral, o tempo total dos testes foi menor para o tracemonkey, embora comparando os quadros, não teve uma máquina virtual que tenha vencido em todos os testes.

Os testes foram feitos usando a revisão 110 do v8 (disponível em http://v8.googlecode.com/svn/trunk) e a revisão db4260e7ee13 do tracemonkey (disponível em http://hg.mozilla.org/tracemonkey/), e foi usado o próprio benchmark do tracemonkey para testar as duas VMs.

Agora a pouco, eu refiz os testes com as últimas versões das máquinas virtuais, e os resultados se alteraram um pouco:

chrome_v8_0last

chrome_v8_1last

chrome_v8_2last

Diferente do teste do Brendan Eich, foi testado apenas VM e não o desempenho dela dentro do navegador, mas no geral, os resultados do meu teste aqui condizem com o dele.

Mais sobre o v8 e assuntos relacionados


Email por Walter Cruz em Google, JavaScript, Ruby
Tags: chrome, linguagens, ruby, self, smalltalk, strongtalk, tracemonkey, v8

1 2 >>