Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2114 (cccbcd9611*) started at 2026-05-05T13:24:38.500 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 14.58s ################################################################################ # Installation # Installing SimilaritySearch... Resolving package versions... Updating `~/.julia/environments/v1.14/Project.toml` [053f045d] + SimilaritySearch v0.14.3 Updating `~/.julia/environments/v1.14/Manifest.toml` [7d9f7c33] + Accessors v0.1.44 [79e6a3ab] + Adapt v4.5.2 [66dad0bd] + AliasTables v1.1.3 [4fba245c] + ArrayInterface v7.24.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.4 [b4f34e82] + Distances v0.10.12 [31c24e10] + Distributions v0.25.125 [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.7.1 [10f19ff3] + LayoutPointers v0.1.17 [2ab3a3ac] + LogExpFunctions v0.3.29 [1914dd2f] + MacroTools v0.5.16 [d125e4d3] + ManualMemory v0.1.8 [e1d29d7a] + Missings v1.2.0 [bac558e1] + OrderedCollections v1.8.1 [90014a1f] + PDMats v0.11.37 [f517fe37] + Polyester v0.7.19 [1d0040c9] + PolyesterWeave v0.2.2 [aea7be01] + PrecompileTools v1.3.3 [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 [ae029012] + Requires v1.3.1 [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.7.2 [aedffcd0] + Static v1.4.0 [0d7ed370] + StaticArrayInterface v1.10.0 [10745b16] + Statistics v1.11.1 [82ae8749] + StatsAPI v1.8.0 [2913bbd2] + StatsBase v0.34.10 [4c63d2b9] + StatsFuns v1.5.2 [7792a7ef] + StrideArraysCore v0.5.9 [8290d209] + ThreadingUtilities v0.5.5 [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.13.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.13.0 [d6f4376e] + Markdown v1.11.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.0.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.13.0 [f489334b] + StyledStrings v1.13.0 [4607b0f0] + SuiteSparse [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.1+0 [4536629a] + OpenBLAS_jll v0.3.33+0 [05823500] + OpenLibm_jll v0.8.7+0 [bea87d4a] + SuiteSparse_jll v7.10.1+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Installation completed after 5.96s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 9.5 s ✓ SimilaritySearch 1 dependency successfully precompiled in 11 seconds. 109 already precompiled. Precompilation completed after 37.15s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_5R4o6h/Project.toml` [7d9f7c33] Accessors v0.1.44 [4c88cf16] Aqua v0.8.14 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.125 [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.10 [7792a7ef] StrideArraysCore v0.5.9 [ade2ca70] Dates v1.11.0 [37e2e46d] LinearAlgebra v1.13.0 [9a3f8284] Random v1.11.0 [2f01184e] SparseArrays v1.13.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_5R4o6h/Manifest.toml` [7d9f7c33] Accessors v0.1.44 [79e6a3ab] Adapt v4.5.2 [66dad0bd] AliasTables v1.1.3 [4c88cf16] Aqua v0.8.14 [4fba245c] ArrayInterface v7.24.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.4 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.125 [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.7.1 [10f19ff3] LayoutPointers v0.1.17 [2ab3a3ac] LogExpFunctions v0.3.29 [1914dd2f] MacroTools v0.5.16 [d125e4d3] ManualMemory v0.1.8 [e1d29d7a] Missings v1.2.0 [bac558e1] OrderedCollections v1.8.1 [90014a1f] PDMats v0.11.37 [f517fe37] Polyester v0.7.19 [1d0040c9] PolyesterWeave v0.2.2 [aea7be01] PrecompileTools v1.3.3 [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 [ae029012] Requires v1.3.1 [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.7.2 [aedffcd0] Static v1.4.0 [0d7ed370] StaticArrayInterface v1.10.0 [10745b16] Statistics v1.11.1 [82ae8749] StatsAPI v1.8.0 [2913bbd2] StatsBase v0.34.10 [4c63d2b9] StatsFuns v1.5.2 [7792a7ef] StrideArraysCore v0.5.9 [8290d209] ThreadingUtilities v0.5.5 [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.13.0 [b27032c2] LibCURL v1.0.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.13.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.14.0 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.0.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets v1.11.0 [2f01184e] SparseArrays v1.13.0 [f489334b] StyledStrings v1.13.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.5.1+0 [deac9b47] LibCURL_jll v8.19.0+0 [e37daf67] LibGit2_jll v1.9.2+0 [29816b5a] LibSSH2_jll v1.11.3+1 [14a3606d] MozillaCACerts_jll v2026.3.19 [4536629a] OpenBLAS_jll v0.3.33+0 [05823500] OpenLibm_jll v0.8.7+0 [458c3c95] OpenSSL_jll v3.5.6+0 [efcefdf7] PCRE2_jll v10.47.0+0 [bea87d4a] SuiteSparse_jll v7.10.1+0 [83775a58] Zlib_jll v1.3.2+0 [3161d3a3] Zstd_jll v1.5.7+1 [8e850b90] libblastrampoline_jll v5.15.0+0 [8e850ede] nghttp2_jll v1.69.0+0 [3f19e933] p7zip_jll v17.8.0+0 Testing Running tests... Test Summary: | Pass Total Time test database abstractions | 57 57 17.1s Test Summary: | Pass Total Time heap | 16 16 0.2s Test Summary: | Pass Total Time KnnHeap | 30005 30005 4.2s Test Summary: | Pass Total Time XKnn | 25005 25005 2.6s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.2s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.030117 seconds SimilaritySearch.Dist.L2: 0.030551 seconds SimilaritySearch.Dist.L1: 0.029969 seconds SimilaritySearch.Dist.L1: 0.030304 seconds SimilaritySearch.Dist.LInfty: 0.027093 seconds SimilaritySearch.Dist.LInfty: 0.027850 seconds SimilaritySearch.Dist.SqL2: 0.028232 seconds SimilaritySearch.Dist.SqL2: 0.028197 seconds SimilaritySearch.Dist.Lp: 0.135871 seconds SimilaritySearch.Dist.Lp: 0.150252 seconds SimilaritySearch.Dist.Lp: 0.259782 seconds SimilaritySearch.Dist.Lp: 0.262335 seconds SimilaritySearch.Dist.Angle: 0.185075 seconds (5.21 k allocations: 279.062 KiB) SimilaritySearch.Dist.Angle: 0.178358 seconds SimilaritySearch.Dist.Cosine: 0.157575 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.158521 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 24.7s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015820 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015902 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.251726 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.255845 seconds SimilaritySearch.Dist.Seqs.LCS: 0.258219 seconds SimilaritySearch.Dist.Seqs.LCS: 0.259794 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.026086 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.026520 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.0s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.070207 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.069118 seconds SimilaritySearch.Dist.Sets.Dice: 0.069188 seconds SimilaritySearch.Dist.Sets.Dice: 0.071252 seconds SimilaritySearch.Dist.Sets.Intersection: 0.067608 seconds SimilaritySearch.Dist.Sets.Intersection: 0.068098 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.069940 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.068351 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 10.2s SimilaritySearch.Dist.NormAngle: 0.004117 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.003782 seconds SimilaritySearch.Dist.NormCosine: 0.002893 seconds SimilaritySearch.Dist.NormCosine: 0.002787 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.5s SimilaritySearch.Dist.Bits.Hamming: 0.004136 seconds SimilaritySearch.Dist.Bits.Hamming: 0.004623 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008923 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008603 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.1s 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.1s computing farthest point 1, dmax: Inf, imax: 26, n: 30 computing farthest point 2, dmax: 1.154174, imax: 27, n: 30 computing farthest point 3, dmax: 0.9227776, imax: 12, n: 30 computing farthest point 4, dmax: 0.8937454, imax: 30, n: 30 computing farthest point 5, dmax: 0.85593057, imax: 7, n: 30 computing farthest point 6, dmax: 0.7153155, imax: 18, n: 30 computing farthest point 7, dmax: 0.7114839, imax: 13, n: 30 computing farthest point 8, dmax: 0.67323995, imax: 17, n: 30 computing farthest point 9, dmax: 0.5859964, imax: 22, n: 30 computing farthest point 10, dmax: 0.57328206, imax: 20, n: 30 Test Summary: | Pass Total Time farthest first traversal | 3 3 2.7s n = 10 Test Summary: | Pass Total Time AdjList | 28 28 4.3s 5.197609 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.004268 seconds SEARCH Exhaustive 2: 0.004341 seconds SEARCH Exhaustive 3: 0.005195 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-05-05T13:28:10.264 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-05-05T13:28:13.561 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.84, maxvisits=272) mem=1GB max-rss=1GB 2026-05-05T13:28:22.234 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=15578 ep=15578 n=15577 BeamSearch(bsize=4, Δ=0.99999994, maxvisits=576) mem=1GB max-rss=1GB 2026-05-05T13:28:24.234 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=29292 ep=29292 n=29291 BeamSearch(bsize=6, Δ=0.83, maxvisits=596) mem=1GB max-rss=1GB 2026-05-05T13:28:26.234 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=40370 ep=40370 n=40369 BeamSearch(bsize=8, Δ=1.0666667, maxvisits=734) mem=1GB max-rss=1GB 2026-05-05T13:28:28.234 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=49663 ep=49663 n=49662 BeamSearch(bsize=8, Δ=1.0666667, maxvisits=734) mem=1GB max-rss=1GB 2026-05-05T13:28:30.234 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=57834 ep=57834 n=57833 BeamSearch(bsize=6, Δ=0.84, maxvisits=642) mem=1GB max-rss=1GB 2026-05-05T13:28:32.234 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=66242 ep=66242 n=66241 BeamSearch(bsize=6, Δ=0.84, maxvisits=642) mem=1GB max-rss=1GB 2026-05-05T13:28:34.234 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=77563 ep=77563 n=77562 BeamSearch(bsize=6, Δ=0.84, maxvisits=642) mem=1GB max-rss=1GB 2026-05-05T13:28:36.234 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=86321 ep=86321 n=86320 BeamSearch(bsize=6, Δ=0.83809525, maxvisits=684) mem=1GB max-rss=1GB 2026-05-05T13:28:38.235 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=96480 ep=96480 n=96479 BeamSearch(bsize=6, Δ=0.83809525, maxvisits=684) mem=1GB max-rss=1GB 2026-05-05T13:28:40.235 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.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, 23.0, 30.0, 124.0] [ Info: minrecall: queries per second: 12874.385521672031, recall: 0.904625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8344671, maxvisits=872)) 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, 23.0, 30.0, 124.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=688)), 1000, 8) [ Info: rebuild: queries per second: 15261.635715255481, recall: 0.892 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=688)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 56.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.81904763, maxvisits=874)), 1000, 8) 2.770325 seconds (489.91 k allocations: 29.751 MiB, 13.10% gc time, 97.08% compilation time) [ Info: matrixhints: queries per second: 12599.50395248959, recall: 0.899875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.81904763, maxvisits=874)) 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, 23.0, 30.0, 124.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-05-05T13:30:04.303 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.84, maxvisits=272) mem=1GB max-rss=1GB 2026-05-05T13:30:07.511 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=19682 ep=19682 n=19681 BeamSearch(bsize=4, Δ=0.83, maxvisits=480) mem=1GB max-rss=1GB 2026-05-05T13:30:09.511 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=36803 ep=36803 n=36802 BeamSearch(bsize=6, Δ=0.83, maxvisits=596) mem=1GB max-rss=1GB 2026-05-05T13:30:11.511 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=50648 ep=50648 n=50647 BeamSearch(bsize=8, Δ=1.0666667, maxvisits=734) mem=1GB max-rss=1GB 2026-05-05T13:30:13.511 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=62738 ep=62738 n=62737 BeamSearch(bsize=6, Δ=0.84, maxvisits=642) mem=1GB max-rss=1GB 2026-05-05T13:30:15.511 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=74965 ep=74965 n=74964 BeamSearch(bsize=6, Δ=0.84, maxvisits=642) mem=1GB max-rss=1GB 2026-05-05T13:30:17.511 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=85224 ep=85224 n=85223 BeamSearch(bsize=6, Δ=0.83809525, maxvisits=684) mem=1GB max-rss=1GB 2026-05-05T13:30:19.544 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=96081 ep=96081 n=96080 BeamSearch(bsize=6, Δ=0.83809525, maxvisits=684) mem=1GB max-rss=1GB 2026-05-05T13:30:21.544 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.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, 23.0, 30.0, 124.0] [ Info: minrecall: queries per second: 11928.451098616906, recall: 0.904625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8344671, maxvisits=872)) 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, 23.0, 30.0, 124.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=688)), 1000, 8) [ Info: rebuild: queries per second: 15041.371970466507, recall: 0.892 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=688)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 56.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.81904763, maxvisits=874)), 1000, 8) 2.284612 seconds (484.77 k allocations: 29.278 MiB, 96.72% compilation time) [ Info: matrixhints: queries per second: 14132.224997571377, recall: 0.899875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.81904763, maxvisits=874)) 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, 23.0, 30.0, 124.0] 1.054426 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001279 seconds SEARCH Exhaustive 2: 0.001359 seconds SEARCH Exhaustive 3: 0.001164 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-05-05T13:31:48.104 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=11, Δ=1.1, maxvisits=314) mem=1GB max-rss=1GB 2026-05-05T13:31:56.498 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=16836 ep=16836 n=16835 BeamSearch(bsize=6, Δ=0.95, maxvisits=588) mem=1GB max-rss=1GB 2026-05-05T13:31:58.539 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=30374 ep=30374 n=30373 BeamSearch(bsize=8, Δ=0.87, maxvisits=684) mem=1GB max-rss=1GB 2026-05-05T13:32:00.539 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=43006 ep=43006 n=43005 BeamSearch(bsize=4, Δ=0.9, maxvisits=606) mem=1GB max-rss=1GB 2026-05-05T13:32:02.539 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=55380 ep=55380 n=55379 BeamSearch(bsize=4, Δ=0.9, maxvisits=606) mem=1GB max-rss=1GB 2026-05-05T13:32:04.539 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=65645 ep=65645 n=65644 BeamSearch(bsize=8, Δ=0.8809524, maxvisits=876) mem=1GB max-rss=1GB 2026-05-05T13:32:06.539 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=76132 ep=76132 n=76131 BeamSearch(bsize=8, Δ=0.8809524, maxvisits=876) mem=1GB max-rss=1GB 2026-05-05T13:32:08.539 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=85224 ep=85224 n=85223 BeamSearch(bsize=8, Δ=0.861678, maxvisits=740) mem=1GB max-rss=1GB 2026-05-05T13:32:10.563 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=95128 ep=95128 n=95127 BeamSearch(bsize=8, Δ=0.861678, maxvisits=740) mem=1GB max-rss=1GB 2026-05-05T13:32:12.563 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.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, 124.0] [ Info: minrecall: queries per second: 14685.943808553684, recall: 0.903 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.89839107, maxvisits=872)) 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, 124.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.86, maxvisits=660)), 1000, 8) [ Info: rebuild: queries per second: 16323.186824080298, recall: 0.89475 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.86, maxvisits=660)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 22.0, 24.0, 26.0, 28.0, 30.0, 33.0, 56.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8072562, maxvisits=906)), 1000, 8) 2.642739 seconds (428.87 k allocations: 25.977 MiB, 2.35% gc time, 97.33% compilation time) [ Info: matrixhints: queries per second: 15086.037406221983, recall: 0.903 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8072562, maxvisits=906)) 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, 124.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m31.0s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:22.082 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-05T13:33:22.368 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 11, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:23.942 D.map = UInt32[0x00000001, 0x00000003, 0x00000005, 0x0000000a, 0x0000000b, 0x0000000d, 0x0000000e, 0x00000012, 0x00000014, 0x00000016, 0x00000062] D.nn = Int32[1, 1, 3, 1, 5, 3, 1, 5, 5, 10, 11, 3, 13, 14, 14, 11, 10, 18, 14, 20, 5, 22, 18, 3, 18, 14, 11, 5, 3, 14, 14, 14, 13, 11, 22, 1, 3, 13, 3, 3, 5, 3, 14, 14, 18, 14, 5, 11, 3, 20, 11, 1, 18, 3, 3, 11, 3, 11, 11, 3, 13, 3, 14, 3, 20, 11, 22, 11, 5, 18, 22, 3, 20, 3, 13, 22, 3, 11, 10, 14, 18, 3, 22, 3, 11, 20, 18, 5, 14, 10, 13, 20, 22, 1, 3, 3, 22, 98, 5, 14] D.dist = Float32[0.0, 0.09259981, 0.0, 0.0069116354, 0.0, 0.04996866, 0.03703487, 0.061247647, 0.08234227, 0.0, 0.0, 0.08221179, 0.0, 0.0, 0.065467894, 0.09595066, 0.025133133, 0.0, 0.015709221, 0.0, 0.033942103, 0.0, 0.05068934, 0.073811054, 0.016383648, 0.040949762, 0.043639004, 0.019564748, 0.017738283, 0.057572603, 0.03675908, 0.006618023, 0.09774816, 0.08829373, 0.025249302, 0.05279714, 0.029859483, 0.069362104, 0.018167794, 0.030856729, 0.02933532, 0.027960002, 0.054510772, 0.029350877, 0.030457497, 0.011631191, 0.029936016, 0.04479289, 0.06735456, 0.006646335, 0.045814455, 0.012103736, 0.036816776, 0.063019276, 0.018248618, 0.06806296, 0.049724698, 0.08334261, 0.062434077, 0.033443034, 0.020739555, 0.010070443, 0.0118457675, 0.06477326, 0.08721578, 0.04201317, 0.05335331, 0.062087476, 0.068461, 0.023213565, 0.011109412, 0.031338036, 0.016296804, 0.05044049, 0.05967194, 0.057919323, 0.047931314, 0.05107665, 0.05555916, 0.0065924525, 0.05046457, 0.05174315, 0.019717872, 0.03636551, 0.04741949, 0.025859892, 0.046034932, 0.008373916, 0.0034230947, 0.028148174, 0.08522838, 0.06299955, 0.05562067, 0.035470903, 0.039709747, 0.041254103, 0.037356675, 0.0, 0.053019464, 0.014498711] Test Summary: | Pass Total Time neardup single block | 3 3 20.5s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.889 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-05T13:33:24.889 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> range: 33:48, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> range: 49:64, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> range: 65:80, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 [ Info: neardup> finished current elements: 11, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:24.890 D.map = UInt32[0x00000001, 0x00000003, 0x00000005, 0x0000000a, 0x0000000b, 0x0000000d, 0x0000000e, 0x00000012, 0x00000014, 0x00000016, 0x00000062] D.nn = Int32[1, 1, 3, 1, 5, 3, 1, 5, 5, 10, 11, 3, 13, 14, 14, 11, 10, 18, 14, 20, 5, 22, 18, 3, 18, 14, 11, 5, 3, 14, 14, 14, 13, 11, 22, 1, 3, 13, 3, 3, 5, 3, 14, 14, 18, 14, 5, 11, 3, 20, 11, 1, 18, 3, 3, 11, 3, 11, 11, 3, 13, 3, 14, 3, 20, 11, 22, 11, 5, 18, 22, 3, 20, 3, 13, 22, 3, 11, 10, 14, 18, 3, 22, 3, 11, 20, 18, 5, 14, 10, 13, 20, 22, 1, 3, 3, 22, 98, 5, 14] D.dist = Float32[0.0, 0.09259981, 0.0, 0.0069116354, 0.0, 0.04996866, 0.03703487, 0.061247647, 0.08234227, 0.0, 0.0, 0.08221179, 0.0, 0.0, 0.065467894, 0.09595066, 0.025133133, 0.0, 0.015709221, 0.0, 0.033942103, 0.0, 0.05068934, 0.073811054, 0.016383648, 0.040949762, 0.043639004, 0.019564748, 0.017738283, 0.057572603, 0.03675908, 0.006618023, 0.09774816, 0.08829373, 0.025249302, 0.05279714, 0.029859483, 0.069362104, 0.018167794, 0.030856729, 0.02933532, 0.027960002, 0.054510772, 0.029350877, 0.030457497, 0.011631191, 0.029936016, 0.04479289, 0.06735456, 0.006646335, 0.045814455, 0.012103736, 0.036816776, 0.063019276, 0.018248618, 0.06806296, 0.049724698, 0.08334261, 0.062434077, 0.033443034, 0.020739555, 0.010070443, 0.0118457675, 0.06477326, 0.08721578, 0.04201317, 0.05335331, 0.062087476, 0.068461, 0.023213565, 0.011109412, 0.031338036, 0.016296804, 0.05044049, 0.05967194, 0.057919323, 0.047931314, 0.05107665, 0.05555916, 0.0065924525, 0.05046457, 0.05174315, 0.019717872, 0.03636551, 0.04741949, 0.025859892, 0.046034932, 0.008373916, 0.0034230947, 0.028148174, 0.08522838, 0.06299955, 0.05562067, 0.035470903, 0.039709747, 0.041254103, 0.037356675, 0.0, 0.053019464, 0.014498711] Test Summary: | Pass Total Time neardup small block | 3 3 0.1s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.040 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-05T13:33:25.040 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-05-05T13:33:25.041 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.041 [ Info: neardup> range: 49:64, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.042 [ Info: neardup> range: 65:80, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.042 [ Info: neardup> range: 81:96, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.042 [ Info: neardup> range: 97:100, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.042 [ Info: neardup> finished current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:25.042 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 10, 15, 14, 15, 5, 2, 9, 3, 15, 14, 6, 5, 3, 8, 15, 14, 16, 16, 2, 6, 6, 13, 3, 3, 5, 3, 14, 14, 15, 14, 8, 8, 8, 15, 7, 4, 15, 16, 3, 8, 12, 16, 6, 8, 13, 3, 14, 16, 12, 8, 2, 8, 8, 9, 2, 8, 15, 6, 13, 6, 6, 6, 10, 14, 15, 3, 11, 3, 6, 15, 9, 5, 14, 10, 16, 3, 9, 6, 6, 3, 9, 16, 8, 14] 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.025133133, 0.044415414, 0.015709221, 0.061253548, 0.033942103, 0.013633132, 0.0833388, 0.073811054, 0.039583445, 0.040949762, 0.021354795, 0.019564748, 0.017738283, 0.036406934, 0.03003949, 0.006618023, 0.0042287707, 0.010429263, 0.0056844354, 0.0051264763, 0.01082319, 0.069362104, 0.018167794, 0.030856729, 0.02933532, 0.027960002, 0.054510772, 0.029350877, 0.04618585, 0.011631191, 0.019244194, 0.029786766, 0.009737909, 0.040461242, 0.035621822, 0.007614672, 0.07738352, 0.055549502, 0.018248618, 0.050958395, 0.0072306395, 0.04395795, 0.028490067, 0.01704669, 0.020739555, 0.010070443, 0.0118457675, 0.035742342, 0.055544376, 0.03609526, 0.017259002, 0.040629685, 0.0036745071, 0.04937285, 0.0007187724, 0.029900134, 0.03864038, 0.020698786, 0.05967194, 0.019416451, 0.029733479, 0.005721152, 0.05555916, 0.0065924525, 0.03855568, 0.05174315, 0.044200182, 0.03636551, 0.010933816, 0.009476244, 0.013477623, 0.008373916, 0.0034230947, 0.028148174, 0.03208655, 0.09341109, 0.009519756, 0.034579992, 0.028482258, 0.041254103, 0.013284981, 0.012319386, 0.012103677, 0.014498711] 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-05-05T13:33:40.523 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=7 n=7 mem=32768 max-rss=699 2026-05-05T13:33:40.524 [ Info: neardup> range: 17:32, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.528 [ Info: neardup> range: 33:48, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 [ Info: neardup> range: 49:64, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 [ Info: neardup> range: 65:80, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 [ Info: neardup> range: 81:96, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 [ Info: neardup> range: 97:100, current elements: 10, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 [ Info: neardup> finished current elements: 11, n: 100, ϵ: 0.1, timestamp: 2026-05-05T13:33:40.529 D.map = UInt32[0x00000001, 0x00000003, 0x00000005, 0x0000000a, 0x0000000b, 0x0000000d, 0x0000000e, 0x00000012, 0x00000014, 0x00000016, 0x00000062] D.nn = Int32[1, 1, 3, 1, 5, 3, 1, 5, 5, 10, 11, 3, 13, 14, 14, 11, 10, 18, 14, 20, 5, 22, 18, 3, 18, 14, 11, 5, 3, 14, 14, 14, 13, 11, 22, 1, 3, 13, 3, 3, 5, 3, 14, 14, 18, 14, 5, 11, 3, 20, 11, 1, 18, 3, 3, 11, 3, 11, 11, 3, 13, 3, 14, 3, 20, 11, 22, 11, 5, 18, 22, 3, 20, 3, 13, 22, 3, 11, 10, 14, 18, 3, 22, 3, 11, 20, 18, 5, 14, 10, 13, 20, 22, 1, 3, 3, 22, 98, 5, 14] D.dist = Float32[0.0, 0.09259981, 0.0, 0.0069116354, 0.0, 0.04996866, 0.03703487, 0.061247647, 0.08234227, 0.0, 0.0, 0.08221179, 0.0, 0.0, 0.065467894, 0.09595066, 0.025133133, 0.0, 0.015709221, 0.0, 0.033942103, 0.0, 0.05068934, 0.073811054, 0.016383648, 0.040949762, 0.043639004, 0.019564748, 0.017738283, 0.057572603, 0.03675908, 0.006618023, 0.09774816, 0.08829373, 0.025249302, 0.05279714, 0.029859483, 0.069362104, 0.018167794, 0.030856729, 0.02933532, 0.027960002, 0.054510772, 0.029350877, 0.030457497, 0.011631191, 0.029936016, 0.04479289, 0.06735456, 0.006646335, 0.045814455, 0.012103736, 0.036816776, 0.063019276, 0.018248618, 0.06806296, 0.049724698, 0.08334261, 0.062434077, 0.033443034, 0.020739555, 0.010070443, 0.0118457675, 0.06477326, 0.08721578, 0.04201317, 0.05335331, 0.062087476, 0.068461, 0.023213565, 0.011109412, 0.031338036, 0.016296804, 0.05044049, 0.05967194, 0.057919323, 0.047931314, 0.05107665, 0.05555916, 0.0065924525, 0.05046457, 0.05174315, 0.019717872, 0.03636551, 0.04741949, 0.025859892, 0.046034932, 0.008373916, 0.0034230947, 0.028148174, 0.08522838, 0.06299955, 0.05562067, 0.035470903, 0.039709747, 0.041254103, 0.037356675, 0.0, 0.053019464, 0.014498711] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 15.5s ExhaustiveSearch allknn: 1.533206 seconds (472.23 k allocations: 28.129 MiB, 99.94% 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.09067390859127045, 0.1663072258234024, 0.19810524582862854, 0.23016273975372314, 0.37646788358688354] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.15004849433898926, 0.2181502729654312, 0.24382731318473816, 0.2854963690042496, 0.42408254742622375] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.19015958905220032, 0.2499013915657997, 0.2941511869430542, 0.33017028868198395, 0.4905703663825989] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.19837737083435059, 0.28096558153629303, 0.31827589869499207, 0.3494281470775604, 0.5081892013549805] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.20688824355602264, 0.3054255545139313, 0.3360723704099655, 0.38257912546396255, 0.532353401184082] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-05T13:33:49.512 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.543938 seconds (599.53 k allocations: 37.788 MiB, 0.67% gc time, 99.99% compilation time) recall = 0.9833333333333332 recall > 0.8 = true recall = 0.9833333333333332 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [2.0, 4.0, 6.0, 9.0, 18.0] Test Summary: | Pass Total Time allknn | 3 3 24.0s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-05-05T13:34:10.450 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, Δ=1.05, maxvisits=160) mem=1GB max-rss=1GB 2026-05-05T13:34:20.807 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (28, 762, -1.1920929f-7) (i, j, d, :parallel) = (51, 687, -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 => 18.085693296, :exact => 1.09253353) Test Summary: | Pass Total Time closestpair | 4 4 19.7s Testing SimilaritySearch tests passed Testing completed after 525.19s PkgEval succeeded after 596.03s