2012-02-12 16 views
13

Sto lavorando a un progetto e sto ancora pensando di utilizzare HAML (codice bello, meno dimensioni dei file di visualizzazione) anziché il classico modello ERB.Rails 3.2 - haml vs. erb. È più veloce? (febbraio 2012)

Le mie preoccupazioni perché non l'ho ancora fatto sono la velocità di generare visualizzazioni - Ho letto un articolo/benchmark e c'era quasi sempre HAML più lento di ERB - ma la verità è che gli articoli sono 2-3 anni vecchio.

Quindi la mia domanda è, come appare il confronto di questi due modelli di sistema ora, all'inizio del 2012?

risposta

16

Ecco alcuni benchmark di qualcuno su Nov 2011. Si dovrebbe essere in grado di eseguire il cd nella directory haml ed eseguire rake benchmark. Dico "dovrebbe" perché è necessario ottenere le dipendenze corrette installate per eseguire tale attività. Ci ho giocato per qualche minuto ma senza fortuna a livello locale. Il file pertinente è haml/test/benchmark.rb.

MODIFICA: Ho trovato qualche informazione in più per voi. Qualcun altro ha avuto lo stesso problema con il mio tentativo di ottenere parametri di riferimento che funzionassero localmente, quindi hanno fatto il proprio. Ho biforcato quel succo e ho aggiunto il supporto per il confronto tra haml e erb: https://gist.github.com/1807036. Ho usato gli stessi modelli che la libreria haml utilizza per il benchmark. Ecco i risultati che ho ottenuto in esecuzione il codice:

$ ruby benchmark.rb 
     user  system  total  real 
haml: 0.650000 0.000000 0.650000 ( 0.651584) 
erb: 0.540000 0.000000 0.540000 ( 0.534727) 

ho usato ruby ​​1.9.3-p0, Haml 3.1.4.

+0

qual è la conclusione? haml richiede più memoria/CPU? –

+0

Haml è più bello da una prospettiva di sviluppo (nella maggior parte dei casi), e se il carico extra è minore e non influenzerà le prestazioni a un livello evidente, dico di andare! –

2

Ci sono già un sacco di dibattiti documentati sul web.

Ma quando abbiamo un'applicazione in cui abbiamo utilizzato ERB esclusivamente. Perché dovremmo provare a passare a HAML? Per me, è una perdita di tempo e una decisione sbagliata che non fornirebbe molti benefici. Mentre il nostro codice sarebbe improvvisamente più pulito e un po 'più bello in HAML, sprecheremmo ore preziose convertendo ERB in HAML. Abbiamo così tante altre cose importanti da fare, perché sprecare quel tempo in qualcosa di così inutile in questo caso?

È tutto relativo. Non è necessario utilizzare HAML anziché ERB. ERB può fare tutte le stesse cose. Sono solo diversi strumenti per lo stesso lavoro.

+2

le conversioni di questa natura possono essere automatizzate ... vedi http://html2haml.heroku.com/ e la loro gemma. il punto qui è una decisione di progetto. Se trovi che leggere tonnellate di haml è meglio di html, provaci. –