[ruby-it] Quattro interpreti ruby a confronto
Simone Carletti
weppos a gmail.com
Sab 8 Ago 2009 11:04:30 CEST
Non ho grandissima esperienza in termini di analisi dell'interprete Ruby a
basso livello ma vi riporto alcune curiosità che ho sperimentato nel tempo,
anche in seguito alla lettura di diversi articoli sul tema scritti da why o
altri personaggi che senza dubbio sanno il fatto loro.
Riguardo a << prestate molta attenzione, come avrete notato (ieri non ho
avuto tempo di rispondere) modifica l'oggetto inplace. E questo è anche il
motivo per cui è più performante dell'interpolazione.
In linea generale, in Ruby (e non solo), i metodi che lavorano sull'oggetto
sono più performanti (parliamo comunque di valori praticamente
impercettivili) di quelli che lavorano ritornando una copia.
Esempio
gsub! è più performante di gsub
slice! è più performance di slice
e via dicendo.
Riguardo alla domande sulle stringhe, è corretto. Ricordo uno splendido
articolo, credo scritto da Dave Thomas, dove dimostrava come sia molto più
performante lavorare su un array di stringhe e poi eseguire il Join alla
fine rispetto a concatenare sulla stessa stringa. Purtroppo non riesco più a
trovare quell'articolo, dove veniva dimostrato come uno script che eseguiva
un parsing di un file (credo Csv) andava in crash per mancanza di risorse
nel primo caso mentre funzionava che una meraviglia con l'uso di Array e
Join.
In linea di massima, le differenze sono irrilevanti per i semplici script
(pensiamo agli Helper di Rails) ma iniziano a diventare consistenti quando
si tratta di lavorare pesantemente su file di testo o parser.
--
Simone Carletti
Site & Blog: http://www.simonecarletti.com
Email: weppos a weppos.net
LinkedIn: http://linkedin.com/in/weppos
Nick: weppos | Skype: weppos
More information about the Ml
mailing list