Utiliser un script/performance/benchmarker:
script/performance/benchmarker 2000 "User.find_by_name('Joe').id" "User.first(:conditions => {:name => 'Joe'}, :select => 'id').id"
Sur ma machine dev, ce rapports:
user system total real
#1 1.110000 0.070000 1.180000 ( 1.500366)
#2 0.800000 0.050000 0.850000 ( 1.078444)
Ainsi, la 2ème méthode semble être plus rapide, car il a moins de travail à faire. Bien sûr, vous devez indice de référence sur votre machine de production, en utilisant l'environnement de production:
RAILS_ENV=production script/performance/benchmarker 2000 "User.find_by_name('Joe').id" "User.first(:conditions => {:name => 'Joe'}, :select => 'id').id"
Il peut changer les conditions un peu pour vous.
Depuis '3.0' ce sera' rail benchmarker ... ' – jibiel