Haml versus ERB

Hoje lendo a lista rails-br me deparei com uma colocação sobre Haml ser mais lento que HTML(entendi que a pessoa queria dizer ERB) e isso me fez relembrar que no início do Be on the net eu e o Vinícius fizemos alguns benchmarks comparando ERB e Haml.

Na época nossos benchmarks indicaram que o Haml era mais rápido que o ERB. Cabe destacar que a nossa escolha NÃO FOI por causa de performance, já que lembro bem que migramos primeiro e fizemos os testes depois. Motivado pela mensagem na lista resolvi refazer os benchmarks e mostrar os números.

Eu estava certo que o Haml se sairia melhor que o ERB mas em 5 minutos eu fiz um código para comparar os dois e descobri que o ERB se sai bem melhor.

Código utilizado

Resultado

Estava tentando me lembrar como foi feito o nosso primeiro benchmark mas não tenho a menor idéia. Não sei se fizemos algo errado ou se os valores eram diferentes naquela época.

Fiquei intrigado se com códigos mais complexos essa performance poderia ser diferente e se isso justificaria o resultado do nosso primeiro benchmark. Resolvi fazer uns testes no Be on the net e o resultado novamente foi mais favorável ao ERB.

Por se tratar de um produto comercial eu não poderia mostrar os códigos que eu utilizei. Então resolvi escrever uns exemplos mais complexos mas desisti após fazer algumas pesquisas no google e ver que outras pessoas já fizeram o mesmo teste e todos obtiveram resultados semelhantes.

Sugiro dar uma olhada nesses dois posts e ler os comentários: http://nex-3.com/posts/81-more-haml-benchmark-issues e http://nex-3.com/posts/87-haml-benchmark-numbers-for-2-2

Conclusão

O ERB é mais rápido porém esse tipo de conclusão é bastante perigosa e não devemos olhar apenas esses números para decidir sobre usar ou não o Haml. Dificilmente o gargalo da sua aplicação será apenas esse render e provavelmente você poderá resolver todos os seus problemas de performance sem a necessidade de pensar nesses números. Se você está tendo problemas com a performance da sua aplicação sugiro que assista a série Scaling Rails.

Se hoje eu tivesse que iniciar um projeto novo não pensaria duas vezes e usaria o Haml. Basicamente o Haml é menos verboso, sua sintaxe é bem amigável e ainda nos protege de cometer pequenos erros no HTML.

Publicado em 05 de Janeiro de 2010 (5 comentários)
Etiquetas haml, erb, rails, ruby, benchmark, performance

Rails Summit 2009: Introdução a banco de dados não relacionais e como utilizar CouchDB no Rails.

A Locaweb disponibilizou no Vimeo os vídeos das palestras no Rails Summit 2009.

Abaixo você pode ver a gravação da minha palestra no evento. A minha palestra teve como objetivo mostrar um pouco sobre banco de dados não relacionais em especial sobre o CouchDB.

Você também pode conferir os slides em:

Publicado em 19 de Dezembro de 2009 (1 comentário)
Etiquetas couchdb, rails, rails summit, couchrest, banco de dados

Pesquisa sobre o Rails Summit 2009

("Galera no Rails Summit")

Passado alguns dias do Rails Summit 2009 e do after Rails Summit resolvi fazer uma pesquisa de opinião sobre as palestras com o intuito de matar a minha curiosidade sobre o que as pessoas acharam das palestras e comparar com a minha opinião.

Antes de analisar os gráficos vejamos algumas considerações importantes:

  1. Foram 89 respostas.
  2. Na primeira versão da pesquisa eu tinha esquecido de por uma opção, por isso descartei todas as respostas dadas antes de por esse opção.
  3. Para a pesquisa ficar simples de ser respondida eu não permiti comentários sobre as palestras e deixei para pedir feedback aqui no blog. Então, se possível deixe seus comentários sobre as palestras que você assistiu.

( "Gráfico 0 Rails Summit") ( "Gráfico 1 Rails Summit") ( "Gráfico 2 Rails Summit") ( "Gráfico 3 Rails Summit") ( "Gráfico 4 Rails Summit") ( "Gráfico 5 Rails Summit") ( "Gráfico 6 Rails Summit") ( "Gráfico 7 Rails Summit") ( "Gráfico 8 Rails Summit") ( "Gráfico 5 Rails Summit")

A minha palestra

("Marcos Tapajós")

Foto tirada pelo Guilherme Chapiewski.

Os resultados da minha palestra me surpreenderam bastante pois eu não estava esperando receber um número tão alto de qualificações "excelente" e "good". Alias, não apenas o resultado da pesquisa, mas o feedback que eu colhi no evento, antes de depois da minha palestra.

Por se tratar de um tema muito novo(e polêmico) eu imaginava uma taxa de rejeição muito maior ao assunto e ter uma meia dúzia de gatos pingados no auditório. Porém antes mesmo da palestra começar algumas pessoas vieram conversar comigo e quando a palestra começou vi algumas pessoas bem interessadas no assunto.

O mais interessante para mim foi que após a palestra várias pessoas conversaram comigo e me contaram suas experiências usando ou brincando com o CouchDB. Fiquei impressionado com a quantidade de pessoas que já olharam para o CouchDB e o MongoDB e tem intenção de usar em projetos de vários portes.

Publicado em 27 de Outubro de 2009 (0 comentários)
Etiquetas rails, rails summit

Slides da minha apresentação no Rails Summit 2009

Publicado em 14 de Outubro de 2009 (0 comentários)
Etiquetas couchdb, rails, rails summit, couchrest, banco de dados