Package evaluation to test SimilaritySearch on Julia 1.12.7-DEV.42 (6f510b6086*) started at 2026-06-19T20:25:33.787 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.12` Set-up completed after 7.96s ################################################################################ # Installation # Installing SimilaritySearch... Resolving package versions... Updating `~/.julia/environments/v1.12/Project.toml` [053f045d] + SimilaritySearch v0.14.3 Updating `~/.julia/environments/v1.12/Manifest.toml` [7d9f7c33] + Accessors v0.1.44 [79e6a3ab] + Adapt v4.6.1 [66dad0bd] + AliasTables v1.1.3 [4fba245c] + ArrayInterface v7.25.0 [62783981] + BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] + CPUSummary v0.2.7 [fb6a15b2] + CloseOpenIntervals v0.1.13 [f70d9fcc] + CommonWorldInvalidations v1.0.0 [34da2185] + Compat v4.18.1 [a33af91c] + CompositionsBase v0.1.2 [187b0558] + ConstructionBase v1.6.0 [adafc99b] + CpuId v0.3.1 [9a962f9c] + DataAPI v1.16.0 [864edb3b] + DataStructures v0.19.5 [b4f34e82] + Distances v0.10.12 [31c24e10] + Distributions v0.25.127 [ffbed154] + DocStringExtensions v0.9.5 [1a297f60] + FillArrays v1.16.0 [34004b35] + HypergeometricFunctions v0.3.28 [615f187c] + IfElse v0.1.1 [3587e190] + InverseFunctions v0.1.17 [92d709cd] + IrrationalConstants v0.2.6 [692b3bcd] + JLLWrappers v1.8.0 [10f19ff3] + LayoutPointers v0.1.17 [2ab3a3ac] + LogExpFunctions v1.0.1 [1914dd2f] + MacroTools v0.5.16 [d125e4d3] + ManualMemory v0.1.8 [e1d29d7a] + Missings v1.2.0 ⌅ [bac558e1] + OrderedCollections v1.8.2 [90014a1f] + PDMats v0.11.37 [f517fe37] + Polyester v0.7.19 [1d0040c9] + PolyesterWeave v0.2.2 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [92933f4c] + ProgressMeter v1.11.0 [43287f4e] + PtrArrays v1.4.0 [1fd47b50] + QuadGK v2.11.3 [189a3867] + Reexport v1.2.2 [79098fc4] + Rmath v0.9.0 [94e857df] + SIMDTypes v0.1.0 [431bcebd] + SciMLPublic v1.0.1 [0e966ebe] + SearchModels v0.5.1 [053f045d] + SimilaritySearch v0.14.3 [a2af1166] + SortingAlgorithms v1.2.2 [276daf66] + SpecialFunctions v2.8.0 [aedffcd0] + Static v1.4.0 [0d7ed370] + StaticArrayInterface v1.10.0 [10745b16] + Statistics v1.11.1 [82ae8749] + StatsAPI v1.8.0 [2913bbd2] + StatsBase v0.34.12 [4c63d2b9] + StatsFuns v2.2.0 [7792a7ef] + StrideArraysCore v0.5.9 [8290d209] + ThreadingUtilities v0.5.6 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [f50d1b31] + Rmath_jll v0.5.1+0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.12.0 [d6f4376e] + Markdown v1.11.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.12.0 [f489334b] + StyledStrings v1.11.0 [4607b0f0] + SuiteSparse [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [4536629a] + OpenBLAS_jll v0.3.29+0 [05823500] + OpenLibm_jll v0.8.7+0 [bea87d4a] + SuiteSparse_jll v7.8.3+2 [8e850b90] + libblastrampoline_jll v5.15.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 6.49s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling packages... 12447.2 ms ✓ SimilaritySearch 1 dependency successfully precompiled in 16 seconds. 107 already precompiled. 24 dependencies precompiled but different versions are currently loaded (ArgTools, Base64, Dates, Downloads, JuliaSyntaxHighlighting, LibCURL, LibCURL_jll, LibGit2, LibGit2_jll, LibSSH2_jll, Logging, Markdown, MozillaCACerts_jll, NetworkOptions, OpenSSL_jll, Pkg, Printf, StyledStrings, TOML, Tar, UUIDs, Zlib_jll, nghttp2_jll and p7zip_jll). Restart julia to access the new versions. Otherwise, 37 dependents of these packages may trigger further precompilation to work with the unexpected versions. Precompilation completed after 33.78s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_5g8IHv/Project.toml` [7d9f7c33] Accessors v0.1.44 [4c88cf16] Aqua v0.8.16 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.127 [f517fe37] Polyester v0.7.19 [92933f4c] ProgressMeter v1.11.0 [0e966ebe] SearchModels v0.5.1 [053f045d] SimilaritySearch v0.14.3 [10745b16] Statistics v1.11.1 [2913bbd2] StatsBase v0.34.12 [7792a7ef] StrideArraysCore v0.5.9 [ade2ca70] Dates v1.11.0 [37e2e46d] LinearAlgebra v1.12.0 [9a3f8284] Random v1.11.0 [2f01184e] SparseArrays v1.12.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_5g8IHv/Manifest.toml` [7d9f7c33] Accessors v0.1.44 [79e6a3ab] Adapt v4.6.1 [66dad0bd] AliasTables v1.1.3 [4c88cf16] Aqua v0.8.16 [4fba245c] ArrayInterface v7.25.0 [62783981] BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] CPUSummary v0.2.7 [fb6a15b2] CloseOpenIntervals v0.1.13 [f70d9fcc] CommonWorldInvalidations v1.0.0 [34da2185] Compat v4.18.1 [a33af91c] CompositionsBase v0.1.2 [187b0558] ConstructionBase v1.6.0 [adafc99b] CpuId v0.3.1 [9a962f9c] DataAPI v1.16.0 [864edb3b] DataStructures v0.19.5 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.127 [ffbed154] DocStringExtensions v0.9.5 [1a297f60] FillArrays v1.16.0 [34004b35] HypergeometricFunctions v0.3.28 [615f187c] IfElse v0.1.1 [3587e190] InverseFunctions v0.1.17 [92d709cd] IrrationalConstants v0.2.6 [692b3bcd] JLLWrappers v1.8.0 [10f19ff3] LayoutPointers v0.1.17 [2ab3a3ac] LogExpFunctions v1.0.1 [1914dd2f] MacroTools v0.5.16 [d125e4d3] ManualMemory v0.1.8 [e1d29d7a] Missings v1.2.0 ⌅ [bac558e1] OrderedCollections v1.8.2 [90014a1f] PDMats v0.11.37 [f517fe37] Polyester v0.7.19 [1d0040c9] PolyesterWeave v0.2.2 [aea7be01] PrecompileTools v1.3.4 [21216c6a] Preferences v1.5.2 [92933f4c] ProgressMeter v1.11.0 [43287f4e] PtrArrays v1.4.0 [1fd47b50] QuadGK v2.11.3 [189a3867] Reexport v1.2.2 [79098fc4] Rmath v0.9.0 [94e857df] SIMDTypes v0.1.0 [431bcebd] SciMLPublic v1.0.1 [0e966ebe] SearchModels v0.5.1 [053f045d] SimilaritySearch v0.14.3 [a2af1166] SortingAlgorithms v1.2.2 [276daf66] SpecialFunctions v2.8.0 [aedffcd0] Static v1.4.0 [0d7ed370] StaticArrayInterface v1.10.0 [10745b16] Statistics v1.11.1 [82ae8749] StatsAPI v1.8.0 [2913bbd2] StatsBase v0.34.12 [4c63d2b9] StatsFuns v2.2.0 [7792a7ef] StrideArraysCore v0.5.9 [8290d209] ThreadingUtilities v0.5.6 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [f50d1b31] Rmath_jll v0.5.1+0 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [8ba89e20] Distributed v1.11.0 [f43a241f] Downloads v1.7.0 [7b1f6079] FileWatching v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [ac6e5ff7] JuliaSyntaxHighlighting v1.12.0 [b27032c2] LibCURL v0.6.4 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.12.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.12.1 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v0.7.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets v1.11.0 [2f01184e] SparseArrays v1.12.0 [f489334b] StyledStrings v1.11.0 [4607b0f0] SuiteSparse [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] LibCURL_jll v8.15.0+0 [e37daf67] LibGit2_jll v1.9.0+0 [29816b5a] LibSSH2_jll v1.11.3+1 [14a3606d] MozillaCACerts_jll v2025.11.4 [4536629a] OpenBLAS_jll v0.3.29+0 [05823500] OpenLibm_jll v0.8.7+0 [458c3c95] OpenSSL_jll v3.5.6+0 [bea87d4a] SuiteSparse_jll v7.8.3+2 [83775a58] Zlib_jll v1.3.1+2 [8e850b90] libblastrampoline_jll v5.15.0+0 [8e850ede] nghttp2_jll v1.64.0+1 [3f19e933] p7zip_jll v17.7.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. Testing Running tests... Test Summary: | Pass Total Time test database abstractions | 57 57 14.5s Test Summary: | Pass Total Time heap | 16 16 0.0s Test Summary: | Pass Total Time KnnHeap | 30005 30005 3.8s Test Summary: | Pass Total Time XKnn | 25005 25005 2.7s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.1s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.032483 seconds SimilaritySearch.Dist.L2: 0.032588 seconds SimilaritySearch.Dist.L1: 0.036702 seconds SimilaritySearch.Dist.L1: 0.033479 seconds SimilaritySearch.Dist.LInfty: 0.035068 seconds SimilaritySearch.Dist.LInfty: 0.034464 seconds SimilaritySearch.Dist.SqL2: 0.032880 seconds SimilaritySearch.Dist.SqL2: 0.035188 seconds SimilaritySearch.Dist.Lp: 0.133645 seconds SimilaritySearch.Dist.Lp: 0.131603 seconds SimilaritySearch.Dist.Lp: 0.248508 seconds SimilaritySearch.Dist.Lp: 0.247268 seconds SimilaritySearch.Dist.Angle: 0.176362 seconds SimilaritySearch.Dist.Angle: 0.171114 seconds SimilaritySearch.Dist.Cosine: 0.161776 seconds SimilaritySearch.Dist.Cosine: 0.176178 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 31.3s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.017581 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.018279 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.406428 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.432236 seconds SimilaritySearch.Dist.Seqs.LCS: 0.422926 seconds SimilaritySearch.Dist.Seqs.LCS: 0.408285 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.033958 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.034367 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 14.3s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.075501 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.074093 seconds SimilaritySearch.Dist.Sets.Dice: 0.072955 seconds SimilaritySearch.Dist.Sets.Dice: 0.073560 seconds SimilaritySearch.Dist.Sets.Intersection: 0.080786 seconds SimilaritySearch.Dist.Sets.Intersection: 0.089943 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.076979 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.075714 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 12.6s SimilaritySearch.Dist.NormAngle: 0.003929 seconds SimilaritySearch.Dist.NormAngle: 0.003846 seconds SimilaritySearch.Dist.NormCosine: 0.003289 seconds SimilaritySearch.Dist.NormCosine: 0.003239 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 8.2s SimilaritySearch.Dist.Bits.Hamming: 0.004722 seconds SimilaritySearch.Dist.Bits.Hamming: 0.004972 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.009501 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.009399 seconds Test Summary: | Pass Total Time Binary distances | 200 200 6.7s quantile(length.(hsp_knns), 0:0.1:1) = [2.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 6.0] Test Summary: | Total Time HSP | 0 5.8s computing farthest point 1, dmax: Inf, imax: 27, n: 30 computing farthest point 2, dmax: 1.4203067, imax: 7, n: 30 computing farthest point 3, dmax: 1.027804, imax: 10, n: 30 computing farthest point 4, dmax: 0.9866241, imax: 9, n: 30 computing farthest point 5, dmax: 0.94957185, imax: 16, n: 30 computing farthest point 6, dmax: 0.8364669, imax: 12, n: 30 computing farthest point 7, dmax: 0.69203895, imax: 30, n: 30 computing farthest point 8, dmax: 0.5746879, imax: 17, n: 30 computing farthest point 9, dmax: 0.55016494, imax: 14, n: 30 computing farthest point 10, dmax: 0.5402609, imax: 1, n: 30 Test Summary: | Pass Total Time farthest first traversal | 3 3 2.8s n = 10 Test Summary: | Pass Total Time AdjList | 28 28 4.6s 5.421197 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.005012 seconds SEARCH Exhaustive 2: 0.004811 seconds SEARCH Exhaustive 3: 0.005016 seconds typeof(seq) = ExhaustiveSearch{SimilaritySearch.Dist.SqL2, MatrixDatabase{Matrix{Float32}}} typeof(ectx) = GenericContext{KnnSorted} typeof(q) = SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true} typeof(res) = KnnSorted{Vector{IdDist}} [ Info: ===================== minrecall Base.Pairs{Symbol, Union{}, Nothing, @NamedTuple{}}() ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:29:07.293 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=2 ep=2 n=1 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:29:10.456 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=6, Δ=0.9, maxvisits=246) mem=1GB max-rss=1GB 2026-06-19T20:29:19.225 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=14986 ep=14986 n=14985 BeamSearch(bsize=6, Δ=0.86, maxvisits=590) mem=1GB max-rss=1GB 2026-06-19T20:29:21.225 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=27241 ep=27241 n=27240 BeamSearch(bsize=8, Δ=0.8707483, maxvisits=712) mem=1GB max-rss=1GB 2026-06-19T20:29:23.225 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=37878 ep=37878 n=37877 BeamSearch(bsize=6, Δ=0.89, maxvisits=654) mem=1GB max-rss=1GB 2026-06-19T20:29:25.255 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=49076 ep=49076 n=49075 BeamSearch(bsize=6, Δ=0.89, maxvisits=654) mem=1GB max-rss=1GB 2026-06-19T20:29:27.255 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=58255 ep=58255 n=58254 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:29:29.255 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=68498 ep=68498 n=68497 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:29:31.255 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=78236 ep=78236 n=78235 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:29:33.256 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=86282 ep=86282 n=86281 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=682) mem=1GB max-rss=1GB 2026-06-19T20:29:35.256 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=95225 ep=95225 n=95224 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=682) mem=1GB max-rss=1GB 2026-06-19T20:29:37.256 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] [ Info: minrecall: queries per second: 10048.393666802944, recall: 0.914625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.78, maxvisits=932)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=8, Δ=0.7619048, maxvisits=748)), 1000, 8) [ Info: rebuild: queries per second: 10365.517803118888, recall: 0.875375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=8, Δ=0.7619048, maxvisits=748)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 57.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=836)), 1000, 8) 2.635939 seconds (748.73 k allocations: 37.749 MiB, 96.66% compilation time) [ Info: matrixhints: queries per second: 11073.617687225114, recall: 0.902625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=836)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] [ Info: ===================== minrecall Base.Pairs{Symbol, AdjDict{UInt32}, Nothing, @NamedTuple{adj::AdjDict{UInt32}}}(:adj => AdjDict{UInt32}(Dict{UInt32, Vector{UInt32}}(), ReentrantLock())) ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:31:08.694 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=6, Δ=0.9, maxvisits=246) mem=1GB max-rss=1GB 2026-06-19T20:31:11.462 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=17799 ep=17799 n=17798 BeamSearch(bsize=6, Δ=0.8707483, maxvisits=582) mem=1GB max-rss=1GB 2026-06-19T20:31:13.462 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=31412 ep=31412 n=31411 BeamSearch(bsize=8, Δ=0.8707483, maxvisits=712) mem=1GB max-rss=1GB 2026-06-19T20:31:15.462 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=42688 ep=42688 n=42687 BeamSearch(bsize=6, Δ=0.89, maxvisits=654) mem=1GB max-rss=1GB 2026-06-19T20:31:17.462 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=53999 ep=53999 n=53998 BeamSearch(bsize=6, Δ=0.89, maxvisits=654) mem=1GB max-rss=1GB 2026-06-19T20:31:19.462 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=63759 ep=63759 n=63758 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:31:21.462 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=74012 ep=74012 n=74011 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:31:23.462 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=84082 ep=84082 n=84081 BeamSearch(bsize=6, Δ=0.8809524, maxvisits=672) mem=1GB max-rss=1GB 2026-06-19T20:31:25.462 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=92252 ep=92252 n=92251 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=682) mem=1GB max-rss=1GB 2026-06-19T20:31:27.462 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] [ Info: minrecall: queries per second: 8865.938874156802, recall: 0.914625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.78, maxvisits=932)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=8, Δ=0.7619048, maxvisits=748)), 1000, 8) [ Info: rebuild: queries per second: 11306.71540313274, recall: 0.875375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=8, Δ=0.7619048, maxvisits=748)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 57.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=836)), 1000, 8) 2.855487 seconds (733.03 k allocations: 36.868 MiB, 96.92% compilation time) [ Info: matrixhints: queries per second: 11497.070977455105, recall: 0.902625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=836)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [1.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 23.0, 30.0, 110.0] 1.859937 seconds (3 allocations: 62.617 KiB) SEARCH Exhaustive 1: 0.001774 seconds SEARCH Exhaustive 2: 0.001822 seconds SEARCH Exhaustive 3: 0.001713 seconds typeof(seq) = ExhaustiveSearch{SimilaritySearch.Dist.SqL2, StrideMatrixDatabase{StrideArraysCore.StrideArray{Float32, 2, (1, 2), Tuple{Int64, Int64}, Tuple{Nothing, Nothing}, Tuple{Static.StaticInt{1}, Static.StaticInt{1}}, Matrix{Float32}}}} typeof(ectx) = GenericContext{KnnSorted} typeof(q) = StrideArraysCore.StrideArray{Float32, 1, (1,), Tuple{Int64}, Tuple{Nothing}, Tuple{Static.StaticInt{1}}, Matrix{Float32}} typeof(res) = KnnSorted{Vector{IdDist}} [ Info: ===================== minrecall Base.Pairs{Symbol, Union{}, Nothing, @NamedTuple{}}() ============================== LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:33:05.650 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=6, Δ=0.861678, maxvisits=276) mem=1GB max-rss=1GB 2026-06-19T20:33:14.254 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=16836 ep=16836 n=16835 BeamSearch(bsize=6, Δ=1.01, maxvisits=632) mem=1GB max-rss=1GB 2026-06-19T20:33:16.260 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=30282 ep=30282 n=30281 BeamSearch(bsize=4, Δ=0.9070295, maxvisits=586) mem=1GB max-rss=1GB 2026-06-19T20:33:18.260 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=41735 ep=41735 n=41734 BeamSearch(bsize=10, Δ=0.97650003, maxvisits=756) mem=1GB max-rss=1GB 2026-06-19T20:33:20.260 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=51756 ep=51756 n=51755 BeamSearch(bsize=10, Δ=0.97650003, maxvisits=756) mem=1GB max-rss=1GB 2026-06-19T20:33:22.261 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=61406 ep=61406 n=61405 BeamSearch(bsize=6, Δ=0.91, maxvisits=644) mem=1GB max-rss=1GB 2026-06-19T20:33:24.261 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=71578 ep=71578 n=71577 BeamSearch(bsize=6, Δ=0.91, maxvisits=644) mem=1GB max-rss=1GB 2026-06-19T20:33:26.261 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=81320 ep=81320 n=81319 BeamSearch(bsize=6, Δ=0.91, maxvisits=644) mem=1GB max-rss=1GB 2026-06-19T20:33:28.261 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=90142 ep=90142 n=90141 BeamSearch(bsize=6, Δ=0.86, maxvisits=734) mem=1GB max-rss=1GB 2026-06-19T20:33:30.261 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] (length(graph.adj), length(graph), length(B.db)) = (100000, 100000, 100000) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 114.0] [ Info: minrecall: queries per second: 12532.040511324798, recall: 0.9065 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.84, maxvisits=804)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 114.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.861678, maxvisits=644)), 1000, 8) [ Info: rebuild: queries per second: 15615.716944267788, recall: 0.8935 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.861678, maxvisits=644)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=898)), 1000, 8) 2.842955 seconds (643.56 k allocations: 32.524 MiB, 2.23% gc time, 97.33% compilation time) [ Info: matrixhints: queries per second: 13117.29412259305, recall: 0.899625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.9160998, maxvisits=898)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 114.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m52.7s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:39.852 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:34:40.141 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:41.658 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000009, 0x0000000c, 0x00000017, 0x00000019, 0x00000023, 0x0000004b] D.nn = Int32[1, 2, 3, 4, 3, 2, 3, 3, 9, 2, 3, 12, 4, 2, 1, 3, 3, 3, 2, 4, 4, 3, 23, 3, 25, 23, 4, 4, 1, 2, 12, 3, 12, 2, 35, 3, 4, 2, 1, 1, 35, 35, 12, 2, 2, 2, 3, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 3, 12, 3, 4, 3, 25, 9, 3, 3, 2, 2, 9, 35, 3, 35, 23, 75, 1, 12, 12, 4, 12, 4, 35, 3, 2, 2, 75, 2, 35, 4, 12, 3, 4, 35, 9, 2, 75, 3, 3, 1, 3] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.048472166, 0.021636546, 0.04880017, 0.074015796, 0.0, 0.06471723, 0.016770542, 0.0, 0.008830667, 0.015141189, 0.039227724, 0.05142933, 0.059576094, 0.05287218, 0.038804233, 0.007516682, 0.048092723, 0.07712841, 0.0, 0.032860756, 0.0, 0.027929008, 0.010987699, 0.0888114, 0.024569929, 0.014665484, 0.021781266, 0.040739655, 0.07149804, 0.007860959, 0.0, 0.024755955, 0.02634275, 0.020560443, 0.030157506, 0.027578413, 0.0056787133, 0.03794968, 0.060362756, 0.07777077, 0.07707542, 0.03194976, 0.042990804, 0.013278663, 0.035429, 0.0083780885, 0.067976296, 0.02531308, 0.0166412, 0.017994821, 0.08918238, 0.06816292, 0.024155378, 0.014526784, 0.06519526, 0.08339274, 0.028369486, 0.03235382, 0.026077151, 0.025466323, 0.006419778, 0.055215836, 0.022085845, 0.04566908, 0.037885785, 0.026771963, 0.061859965, 0.06361574, 0.09964234, 0.022950113, 0.0, 0.026984572, 0.02365917, 0.049953938, 0.029229462, 0.01699704, 0.019268751, 0.033374786, 0.027855575, 0.011469483, 0.045096815, 0.059781075, 0.09162158, 0.035937488, 0.054475307, 0.059394002, 0.028185844, 0.008401692, 0.029256761, 0.030146837, 0.02605009, 0.017926395, 0.020386338, 0.054378033, 0.030495048, 0.06885648] Test Summary: | Pass Total Time neardup single block | 3 3 18.9s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.714 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:34:42.714 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> range: 33:48, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.715 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000009, 0x0000000c, 0x00000017, 0x00000019, 0x00000023, 0x0000004b] D.nn = Int32[1, 2, 3, 4, 3, 2, 3, 3, 9, 2, 3, 12, 4, 2, 1, 3, 3, 3, 2, 4, 4, 3, 23, 3, 25, 4, 4, 4, 1, 2, 12, 3, 12, 2, 35, 3, 4, 2, 1, 1, 3, 4, 12, 2, 2, 2, 3, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 3, 12, 3, 4, 3, 25, 9, 3, 3, 2, 2, 9, 35, 3, 35, 23, 75, 1, 12, 12, 4, 12, 4, 35, 3, 2, 2, 75, 2, 35, 4, 12, 3, 4, 35, 9, 2, 75, 3, 3, 1, 3] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.048472166, 0.021636546, 0.04880017, 0.074015796, 0.0, 0.06471723, 0.016770542, 0.0, 0.008830667, 0.015141189, 0.039227724, 0.05142933, 0.059576094, 0.05287218, 0.038804233, 0.007516682, 0.048092723, 0.07712841, 0.0, 0.032860756, 0.0, 0.040495336, 0.010987699, 0.0888114, 0.024569929, 0.014665484, 0.021781266, 0.040739655, 0.07149804, 0.007860959, 0.0, 0.024755955, 0.02634275, 0.020560443, 0.030157506, 0.027578413, 0.099544466, 0.054267645, 0.060362756, 0.07777077, 0.07707542, 0.03194976, 0.042990804, 0.013278663, 0.035429, 0.0083780885, 0.067976296, 0.02531308, 0.0166412, 0.017994821, 0.08918238, 0.06816292, 0.024155378, 0.014526784, 0.06519526, 0.08339274, 0.028369486, 0.03235382, 0.026077151, 0.025466323, 0.006419778, 0.055215836, 0.022085845, 0.04566908, 0.037885785, 0.026771963, 0.061859965, 0.06361574, 0.09964234, 0.022950113, 0.0, 0.026984572, 0.02365917, 0.049953938, 0.029229462, 0.01699704, 0.019268751, 0.033374786, 0.027855575, 0.011469483, 0.045096815, 0.059781075, 0.09162158, 0.035937488, 0.054475307, 0.059394002, 0.028185844, 0.008401692, 0.029256761, 0.030146837, 0.02605009, 0.017926395, 0.020386338, 0.054378033, 0.030495048, 0.06885648] Test Summary: | Pass Total Time neardup small block | 3 3 0.0s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.810 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:34:42.811 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.812 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.812 [ Info: neardup> range: 49:64, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.854 [ Info: neardup> range: 65:80, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.854 [ Info: neardup> range: 81:96, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.855 [ Info: neardup> range: 97:100, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.855 [ Info: neardup> finished current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:42.855 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x0000004b, 0x0000005d] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 8, 7, 14, 13, 13, 7, 6, 3, 7, 13, 13, 16, 15, 2, 12, 3, 5, 2, 8, 3, 13, 2, 1, 15, 16, 4, 12, 10, 15, 16, 16, 2, 14, 3, 5, 14, 2, 2, 5, 16, 10, 3, 11, 12, 3, 6, 16, 8, 9, 16, 16, 16, 2, 8, 16, 8, 16, 6, 75, 15, 12, 12, 4, 12, 4, 8, 16, 2, 6, 75, 10, 8, 14, 12, 7, 4, 93, 8, 14, 75, 16, 8, 15, 16] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0061784983, 0.046812832, 0.037983477, 0.0059651732, 0.01867193, 0.012242138, 0.06600994, 0.032860756, 0.07615459, 0.016216397, 0.0033979416, 0.016121328, 0.018346071, 0.014665484, 0.021781266, 0.040739655, 0.05544287, 0.007860959, 0.039791584, 0.024755955, 0.014549732, 0.020560443, 0.030157506, 0.0033946633, 0.04242909, 0.054267645, 0.060362756, 0.001137495, 0.041126788, 0.021118283, 0.010255277, 0.013278663, 0.017153978, 0.0083780885, 0.030476332, 0.0045164227, 0.0166412, 0.017994821, 0.031863213, 0.010322452, 0.018964887, 0.014526784, 0.025681317, 0.08339274, 0.028369486, 0.014165044, 0.009669006, 0.04999405, 0.006419778, 0.0128490925, 0.006507039, 0.039677918, 0.037885785, 0.0053238273, 0.07657164, 0.046092153, 0.061047554, 0.014159441, 0.0, 0.006606877, 0.02365917, 0.049953938, 0.029229462, 0.01699704, 0.019268751, 0.010476112, 0.0046235323, 0.011469483, 0.005899906, 0.059781075, 0.02072841, 0.08928162, 0.018941522, 0.059394002, 0.0147842765, 0.008401692, 0.0, 0.022843838, 0.0038945675, 0.017926395, 0.017676294, 0.016744435, 0.011444211, 0.001921773] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 0.1s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.746 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=6 n=6 mem=32768 max-rss=826 2026-06-19T20:34:58.747 [ Info: neardup> range: 17:32, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.752 [ Info: neardup> range: 33:48, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.752 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.753 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.753 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.753 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.753 [ Info: neardup> finished current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-06-19T20:34:58.753 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000009, 0x0000000c, 0x00000017, 0x00000019, 0x00000023, 0x0000004b] D.nn = Int32[1, 2, 3, 4, 3, 2, 3, 3, 9, 2, 3, 12, 4, 2, 1, 3, 3, 3, 2, 4, 4, 3, 23, 3, 25, 4, 4, 4, 1, 2, 12, 3, 12, 2, 35, 3, 4, 2, 1, 1, 3, 4, 12, 2, 2, 2, 3, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 3, 12, 3, 4, 3, 25, 9, 3, 3, 2, 2, 9, 35, 3, 35, 23, 75, 1, 12, 12, 4, 12, 4, 35, 3, 2, 2, 75, 2, 35, 4, 12, 3, 4, 35, 9, 2, 75, 3, 3, 1, 3] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.048472166, 0.021636546, 0.04880017, 0.074015796, 0.0, 0.06471723, 0.016770542, 0.0, 0.008830667, 0.015141189, 0.039227724, 0.05142933, 0.059576094, 0.05287218, 0.038804233, 0.007516682, 0.048092723, 0.07712841, 0.0, 0.032860756, 0.0, 0.040495336, 0.010987699, 0.0888114, 0.024569929, 0.014665484, 0.021781266, 0.040739655, 0.07149804, 0.007860959, 0.0, 0.024755955, 0.02634275, 0.020560443, 0.030157506, 0.027578413, 0.099544466, 0.054267645, 0.060362756, 0.07777077, 0.07707542, 0.03194976, 0.042990804, 0.013278663, 0.035429, 0.0083780885, 0.067976296, 0.02531308, 0.0166412, 0.017994821, 0.08918238, 0.06816292, 0.024155378, 0.014526784, 0.06519526, 0.08339274, 0.028369486, 0.03235382, 0.026077151, 0.025466323, 0.006419778, 0.055215836, 0.022085845, 0.04566908, 0.037885785, 0.026771963, 0.061859965, 0.06361574, 0.09964234, 0.022950113, 0.0, 0.026984572, 0.02365917, 0.049953938, 0.029229462, 0.01699704, 0.019268751, 0.033374786, 0.027855575, 0.011469483, 0.045096815, 0.059781075, 0.09162158, 0.035937488, 0.054475307, 0.059394002, 0.028185844, 0.008401692, 0.029256761, 0.030146837, 0.02605009, 0.017926395, 0.020386338, 0.054378033, 0.030495048, 0.06885648] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 15.9s ExhaustiveSearch allknn: 1.525984 seconds (674.60 k allocations: 35.018 MiB, 99.95% compilation time) [ Info: All KNN quartile 1-th: [ Info: 1 => [0.0, 0.0, 0.0, 0.0, 0.0] [ Info: All KNN quartile 2-th: [ Info: 2 => [0.06224147230386734, 0.14761138334870338, 0.19935199618339539, 0.2424960620701313, 0.4126492738723755] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.12803037464618683, 0.23488351330161095, 0.2758694291114807, 0.312202624976635, 0.45265427231788635] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.16064676642417908, 0.2662085220217705, 0.30728423595428467, 0.347756028175354, 0.46967974305152893] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.2114313244819641, 0.28495655953884125, 0.3378051817417145, 0.38144782185554504, 0.5143353939056396] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.2309538871049881, 0.31096208840608597, 0.36412109434604645, 0.40050407499074936, 0.5482592582702637] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:35:06.540 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.506538 seconds (957.55 k allocations: 48.686 MiB, 1.06% gc time, 99.99% compilation time) recall = 0.9799999999999998 recall > 0.8 = true recall = 0.9799999999999998 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [1.0, 4.0, 6.0, 8.0, 19.0] Test Summary: | Pass Total Time allknn | 3 3 21.6s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-06-19T20:35:25.101 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=4, Δ=0.8809524, maxvisits=164) mem=1GB max-rss=1GB 2026-06-19T20:35:35.105 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (58, 761, -1.1920929f-7) (i, j, d, :parallel) = (58, 761, -1.1920929f-7, :parallel) [ Info: NOTE: the exact method will be faster on small datasets due to the preprocessing step of the approximation method [ Info: ("closestpair computation time", :approx => 16.450384299, :exact => 0.918946355) Test Summary: | Pass Total Time closestpair | 4 4 17.9s Testing SimilaritySearch tests passed Testing completed after 552.82s PkgEval succeeded after 612.04s