Questa domanda riguarda principalmente gli interni di Ruby, la velocità può essere misurata con un semplice punto di riferimento.memoizzazione rubino, efficienza
Qual è il modo più efficiente per memorizzare un valore restituito in ruby?
Ho sempre valori con memoized:
def method
@value ||= calculate_value
end
Ma poiché si espande tecnicamente a:
@value = @value || calculate_value
mi chiedo circa l'efficienza di ri-eseguire la stessa assegnazione di volta in volta.
Sarebbe meglio?
def method
@value ? @value : (@value = calculate_value)
end
Inoltre, cambia in diversi interpreti? MRI, Rubinius, ecc
Se calculate_value è costoso e può restituire falso o nullo, è necessario pensare in qualcosa del tipo 'defined? @valore? @value: (@value = calculate_value) '. –
Una domanda interessante, la cui risposta sono lieto di sapere. Non dimenticare di selezionare una risposta, se disponibile. –