Skip to content

Instantly share code, notes, and snippets.

@mrinterweb
Created June 28, 2024 00:24
Show Gist options
  • Save mrinterweb/efd866929c7ad329cf43b74a55eb0ab4 to your computer and use it in GitHub Desktop.
Save mrinterweb/efd866929c7ad329cf43b74a55eb0ab4 to your computer and use it in GitHub Desktop.
faker vs ffaker benchmark
require 'faker'
require 'ffaker'
require 'benchmark/ips'
Benchmark.ips do |x|
x.warmup = 2
x.report("Faker::Name.name") { Faker::Name.name }
x.report("FFaker::Name.name") { FFaker::Name.name }
x.compare!
end
Benchmark.ips do |x|
x.warmup = 2
x.report("Faker::Internet.email") { Faker::Internet.email }
x.report("FFaker::Internet.email") { FFaker::Internet.email }
x.compare!
end
Benchmark.ips do |x|
x.warmup = 2
x.report("Faker::PhoneNumber.phone_number") { Faker::PhoneNumber.phone_number }
x.report("FFaker::PhoneNumber.phone_number") { FFaker::PhoneNumber.phone_number }
x.compare!
end
Benchmark.ips do |x|
x.warmup = 2
x.report("Faker::Lorem.paragraph") { Faker::Lorem.paragraph }
x.report("FFaker::Lorem.paragraph") { FFaker::Lorem.paragraph }
x.compare!
end
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) +YJIT [arm64-darwin23]
Warming up --------------------------------------
Faker::Name.name 1.000 i/100ms
FFaker::Name.name 213.224k i/100ms
Calculating -------------------------------------
Faker::Name.name 21.293k (±20.4%) i/s - 97.254k in 4.981906s
FFaker::Name.name 2.248M (± 0.5%) i/s - 11.301M in 5.028080s
Comparison:
FFaker::Name.name: 2247601.4 i/s
Faker::Name.name: 21293.1 i/s - 105.56x slower
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) +YJIT [arm64-darwin23]
Warming up --------------------------------------
Faker::Internet.email
2.015k i/100ms
FFaker::Internet.email
34.279k i/100ms
Calculating -------------------------------------
Faker::Internet.email
20.181k (± 0.6%) i/s - 102.765k in 5.092347s
FFaker::Internet.email
347.032k (± 0.5%) i/s - 1.748M in 5.037784s
Comparison:
FFaker::Internet.email: 347031.8 i/s
Faker::Internet.email: 20181.0 i/s - 17.20x slower
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) +YJIT [arm64-darwin23]
Warming up --------------------------------------
Faker::PhoneNumber.phone_number
10.348k i/100ms
FFaker::PhoneNumber.phone_number
30.298k i/100ms
Calculating -------------------------------------
Faker::PhoneNumber.phone_number
103.161k (± 0.8%) i/s - 517.400k in 5.015743s
FFaker::PhoneNumber.phone_number
304.515k (± 0.5%) i/s - 1.545M in 5.074403s
Comparison:
FFaker::PhoneNumber.phone_number: 304514.9 i/s
Faker::PhoneNumber.phone_number: 103161.1 i/s - 2.95x slower
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) +YJIT [arm64-darwin23]
Warming up --------------------------------------
Faker::Lorem.paragraph
1.314k i/100ms
FFaker::Lorem.paragraph
14.399k i/100ms
Calculating -------------------------------------
Faker::Lorem.paragraph
13.220k (± 5.5%) i/s - 67.014k in 5.093327s
FFaker::Lorem.paragraph
146.450k (± 0.5%) i/s - 734.349k in 5.014460s
Comparison:
FFaker::Lorem.paragraph: 146449.6 i/s
Faker::Lorem.paragraph: 13219.7 i/s - 11.08x slower
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment