require 'benchmark' require 'active_support/core_ext/enumerable' # Генерируем большой массив объектов users = [] 1_000_000.times do users << { name: "User#{rand(1000)}", age: rand(18..65) } end # Измеряем время выполнения метода pluck pluck_time = Benchmark.realtime do names_pluck = users.pluck(:name) end # Измеряем время выполнения метода map map_time = Benchmark.realtime do names_map = users.map { |user| user[:name] } end # Преобразуем время в секунды с точностью до миллисекунд pluck_time_seconds = pluck_time.round(6) map_time_seconds = map_time.round(6) puts "Время выполнения pluck: #{pluck_time_seconds} секунд" puts "Время выполнения map: #{map_time_seconds} секунд"
Время выполнения pluck: 0.100913 секунд
SELECT "users"."name" FROM "users"
Время выполнения map: 0.150986 секунд
<span class="token keyword">SELECT</span> <span class="token string">"users"</span><span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">FROM</span> <span class="token string">"users"</span>