BT
x Por favor preencha a pesquisa do InfoQ !

O que há de errado com a Net::HTTP do Ruby?

por Mirko Stocker , traduzido por Felipe Rodrigues em 12 Nov 2008 |

"O que pode estar errado com o a implementação Net:HTTP do Ruby?", você poderia perguntar. Adam Nelson foi surpreendido pelo que ele viu em uma aplicação que transfere enormes quantidades de dados."O que realmente acontece é que a CPU redlines, e o dado é transferido em blocos de 1024 bytes.", Adam descobriu em sua primeira análise. O verdadeiro problema é que "isto põe um timeout em torno de cada única chamada rbuf_fill," escreve Alex Young, "então por padrão tem de lançar uma nova thread para cada 1K de dados recebidos".

Uma comparação entre diferentes implementações de diferentes bibliotecas Ruby e Ruby 1.8.6 mostraram que utilizam "duas vezes mais o uso da CPU enquanto o concorrente mais próximo", que é Ruby 1.8.7, que aparentemente usa um buffer maior (16K). Curiosamente, Ruby 1.9.0 tem o menor uso da CPU, que uma implementação que utiliza readpartial, "sem timeout para leitura de socket" e "String buffer pré-alocados para cada leitura ". Logo atrás está a RFuzz, uma implementação Ruby baseada no núcleo Mongrel por Zed Shaw.

Esta questão não é nova, em uma thread no ruby-talk mailinglist datada de 2006 jáse discutia o problema e alguns workarounds para evitá-lo.

Além disso, isto é também um bom exemplo de quão útil e valioso implementações open source podem ser.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Ué, cadê? by Leandro Silva

O texto não tá traduzido...

Re: Ué, cadê? by Felipe Rodrigues

Corrigido! =)

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

2 Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.