InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Ruby Performance Roundup: Ruby 1.9.1 Performance no Mundo Real, GC vs EventMachine, Ruby Compiler

Postado por Werner Schuster , traduzido por Ricardo Almeida em 21 Mai 2009

Seções
Desenvolvimento,
Arquitetura e Design
Tópicos
Desempenho e Escalabilidade ,
Ruby
Tags
Ruby 1.9 ,
Coleta de Lixo

Um argumento para usar Ruby 1.9.1 é o aumento significante de performance. Um novo resultado de benchmark vem do mundo real, aplicações existentes e pit 1.8.x, JRuby e 1.9.1 contra cada um dos outros:

Nós portamos Acunote - nosso sistema de gerenciamento de projeto online e o software Scrum, ambos JRuby e Ruby 1.9, e rodamos nossos conjunto de benchmark de performance.

Ruby 1.9.1 e JRuby ambos fornecem melhoras significantes ao 1.8.6, com 1.9.1 na liderança do JRuby, apesar de algumas discussões no comentário sobre maneiras de melhorar a performance do JRuby com alguns flags em linhas de comando.

Melhoras na performance no 1.9.1 não chegam somente de uma VM mais rápida, mas também de algumas novas funcionalidades. Muhammed Ali mostra como escalar uma aplicação web usando Fibers do Ruby 1.9.1. Por outro lado, Muhammed também comentou um questão com vazamento de memória no Object#extend no 1.9.1.

Entretanto, 1.8.6 é ainda a única opção para alguns projetos, devido a algumas bibliotecas perdidas no 1.9.1. Por causa disso, existe muito interesse na correção de alguns estrangulamentos no 1.8.6. Joe Damato foi investigar algumas das questões em seu blog. Por exemplo, ele investigou a história por trás do --enable-pthread e porque desativar essa configuração trás 30% de ganho na performance. Em outro artigo, Joe e Aman Gupta investigaram o problema com o Ruby GC - e veio com um pequeno patch que corrige alguns problemas com o GC e EventMachine:

* Acelera a GC em 2 a 3 vezes por causa da enorme diminuição no tamanho da pilha do frame.
* Corrige um bug aberto na EventMachine onde usa threads com Epoll que causa muita lentidão. A razão é que cada thread vai herdar aproximadamente 800,000 bytes de pilha que é copiado nele e fora toda troca de contexto.
* Isso resulta em um aumento de 500 requests/segundo a 7000 requests/segundo quando usa Sinatra+Thin+Epoll+Threads. Isso é muito mal.

Finalmente, Viktor Hokstad escreveu uma serie em compilando Ruby já a algum tempo. Um artigo recente fala sobre algum desses problemas em fazer Ruby mais rápido e possíveis otimizações.

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.