50 lines
1.1 KiB
Ruby
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
|