BT

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.

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

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT