BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias CrossTwine Linker tenta melhorar a performance da RMI e 1.9.1

CrossTwine Linker tenta melhorar a performance da RMI e 1.9.1

CrossTwine

é uma tentativa de melhorar as performances dos run-times das linguagens Ruby e Python. Uma

explicação introdutória sobre o CrossTwine Linker

:

Superficialmente, ele observa o comportamento dos seus objetos e funções em run-time e otimiza as situações mais comuns removendo o dinamismo onde não é necessário, enquanto ainda fornece total segurança. Nós vamos um pouco além do básico no Technical White Paper.

As versões do Ruby 1.8 e Ruby 1.9.1 com os patches do CrossTwine estão disponíveis como binários para Linux.

Procurar pelo código fonte do CrossTwine e sua integração com as VM’s não vai lhe render nada; a tecnologia é de fonte fechada. Ao invés disso, a empresa quer manter o foco em fornecer serviços, ajudando a melhorar as aplicações desenvolvidas em Ruby ou Python com a tecnologia CrossTwine:

Como provedor de serviços, o kernel do CrossTwine nos permite desenvolver rapidamente interpretadores de linguagem, domínio e até mesmo de problema, específicos e adaptados para necessidades específicas: de fato, nós podemos escolher (e expandir) o nível de especialização parcial se nós conhecermos os problema em questão. No entanto, nós 'trapaceamos' de forma segura: uma customização para um problema específico permanece 100% compatível com a linguagem, mas pode ser muito mais rápido em alguns casos.


Apesar disso, alguns simples benchmarks mostram que os binários disponíveis rodam mais rápido do que os atuais runtimes. Contudo, um dos desenvolvedores do CrossTwine mencionou que a atual versão alpha apenas otimiza certos códigos:

Melhorar o desempenho de aplicações do mundo real pode ser muito fácil como também pode ser muito difícil, depende do que as aplicações planejam fornecer. Nós estamos longe do fim: enquanto aplicação que processam grande quantidades de dados podem ter seu desempenho substancialmente melhorado, as que utilizam Rails ainda não possuem nenhum ganho com nossos interpretadores modificados.


Uma explicação mais técnica é fornecida pelo Whitepaper (PDF). Uma otimização melhora o caching inline e envio de mensagens.
Outra otimização é na área de lookup de variáveis de instância, melhorando o lookup repetido dessas variáveis. Outra otimização de lookup, similar ao que o Google Chrome's V8 faz para os objetos Javascript, está planejada, mas não está em curso no momento.

A empresa está presente no Twitter no endereço http://twitter.com/crosstwine.

A CrossTwine ficou menor após o anuncio do projeto Unladen Swallow no Python space. O time por trás do Unladen Swallow, que, de acordo com o site, é composto por alguns funcionários do Google, fez o fork da atual VM e planejam realizar melhorias no desempenho – na esperança que as modificações feitas por eles possam ser adicionadas ao branch oficial. Uma das otimizações planejadas é melhorar o loop de interpretação de bytecode substituindo o dispatch lento de bytecode por métodos mais rápidos (direct threading ou outros). Outro item planejado é to get rid of the GIL (Global Interpreter Lock), que já existe no Ruby 1.9.x, e permite que apenas uma thread execute código Python por vez. Outros planos incluem um GC genérico e finalmente um JIT, que possivelmente vai ser implementado usando LLVM.  Diferentemente do CrossTwine, o Unladen Swallow é open source.

Finalizando, quando algo vem para melhorar a eficiência da antiga VM, o projeto Cog VM é algo que deve ser observado. É uma versão significativamente melhorada da Squeak VM de Eliott Miranda.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT