# frozen_string_literal: true %w[lib benchmarks].each { |name| $LOAD_PATH.unshift(name) } require "benchmark/ips" require "lite/uxid" Benchmark.ips do |x| x.report("HashID") do id = rand(1..1_000_000) Lite::Uxid::Reversible::Hashid.encode(id) end x.report("ObfuscateID") do id = rand(1..1_000_000) Lite::Uxid::Reversible::Obfuscateid.encode(id) end # The irreversible examples include `rand` simulate # the extra work just like reversible examples. x.report("NanoID") do _id = rand(1..1_000_000) Lite::Uxid::Irreversible::Nanoid.encode end x.report("ULID") do _id = rand(1..1_000_000) Lite::Uxid::Irreversible::Ulid.encode end x.report("UUID v4") do _id = rand(1..1_000_000) Lite::Uxid::Irreversible::Uuid.encode end x.report("UUID v7") do _id = rand(1..1_000_000) Lite::Uxid::Irreversible::Uuid.encode(version: 7) end x.compare! end