Если то, что вы ищете, является идентификатором, системы типа UUID могут быть более подходящими. В Julia может помочь модуль UUIDs
из стандартной библиотеки:
julia> using UUIDs: uuid4
julia> import Random
julia> Random.seed!(43);
julia> uuid4()
UUID("7d6398a5-f5bb-4164-8552-1668b964e46f")
julia> uuid4()
UUID("93938d68-980f-40b1-b1f9-789c5230116c")
Сравнение с UUID происходит быстрее, чем с String
, и примерно так же, как BigInt
. Вот быстрый тест с использованием BenchmarkTools.jl , часть setup
не учитывается для оценки времени выполнения:
julia> using BenchmarkTools: @btime
julia> @btime s1 == s2 setup=(s1=string(uuid4()); s2=string(uuid4()))
5.685 ns (0 allocations: 0 bytes)
julia> @btime s1 == s2 setup=(s1=uuid4(); s2=uuid4())
1.640 ns (0 allocations: 0 bytes)
julia> @btime s1 == s2 setup=(s1=BigInt(rand(Int)); s2=BigInt(rand(Int)))
2.976 ns (0 allocations: 0 bytes)