Files
Dalan/scripts/benchmark/phones.rb
2026-08-13 19:56:46 +03:30

50 lines
1.1 KiB
Ruby

require 'benchmark'
require_relative "../../config/environment"
# Check only Error logs
ActiveRecord::Base.logger.level = 3
## Before benchmark
user = User.find_or_create_by(uid: "UIDExample", email: 'test_example@gmail.com') do |u|
u.password = "PasswordExample12"
end
# Benchmark
puts '---------------------------'
puts 'Phone creating'
puts '---------------------------'
Benchmark.bm do |x|
# Creates 1 phone
x.report(:p_1) {
phone = Phone.new(user_id: user.id, country: 'UA', number: '123123123')
phone.save(validate: false)
}
# Creates 1000 phones
x.report(:p_1000) {
1_000.times do
phone = Phone.new(user_id: user.id, country: 'UA', number: '123123123')
phone.save(validate: false)
end
}
end
puts '---------------------------'
puts 'Descrypts data from phone'
puts '---------------------------'
Benchmark.bm do |x|
# Descrypts 1 phone
x.report(:p_1) {
Phone.last.number
}
# Descrypts 1000 phones
x.report(:p_1000) {
Phone.where(user_id: user.id).limit(1000).each do |phone|
phone.number
end
}
end
## After benchmark
Phone.where(user_id: user.id).delete_all
user.destroy