Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2043 (b936235316*) started at 2026-04-16T23:43:16.046 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 14.85s ################################################################################ # 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.124 [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.3.1 [0d7ed370] + StaticArrayInterface v1.9.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.8 [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.3.0+1 [4536629a] + OpenBLAS_jll v0.3.30+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.94s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 3.6 s ✓ SearchModels 9.3 s ✓ SimilaritySearch 2 dependencies successfully precompiled in 14 seconds. 108 already precompiled. Precompilation completed after 42.49s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_7dRUyl/Project.toml` [7d9f7c33] Accessors v0.1.44 [4c88cf16] Aqua v0.8.14 [b4f34e82] Distances v0.10.12 [31c24e10] Distributions v0.25.124 [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.8 [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_7dRUyl/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.124 [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.3.1 [0d7ed370] StaticArrayInterface v1.9.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.8 [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.3.0+1 [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.30+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.68.1+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 3.9s Test Summary: | Pass Total Time XKnn | 25005 25005 2.8s Test Summary: | Pass Total Time XKnn pop ops | 9603 9603 1.3s [ Info: (MatrixDatabase{Matrix{Float32}}, SubDatabase{MatrixDatabase{Matrix{Float32}}, Vector{Int64}}) SimilaritySearch.Dist.L2: 0.029419 seconds SimilaritySearch.Dist.L2: 0.029906 seconds SimilaritySearch.Dist.L1: 0.031628 seconds SimilaritySearch.Dist.L1: 0.031316 seconds SimilaritySearch.Dist.LInfty: 0.030074 seconds SimilaritySearch.Dist.LInfty: 0.029556 seconds SimilaritySearch.Dist.SqL2: 0.027636 seconds SimilaritySearch.Dist.SqL2: 0.025940 seconds SimilaritySearch.Dist.Lp: 0.130624 seconds SimilaritySearch.Dist.Lp: 0.131228 seconds SimilaritySearch.Dist.Lp: 0.257667 seconds SimilaritySearch.Dist.Lp: 0.256340 seconds SimilaritySearch.Dist.Angle: 0.185410 seconds (5.21 k allocations: 279.062 KiB) SimilaritySearch.Dist.Angle: 0.189817 seconds SimilaritySearch.Dist.Cosine: 0.160061 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.153640 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 23.2s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.014860 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015029 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.176104 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.172492 seconds SimilaritySearch.Dist.Seqs.LCS: 0.173404 seconds SimilaritySearch.Dist.Seqs.LCS: 0.166115 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027414 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027664 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 9.4s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.069974 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.080540 seconds SimilaritySearch.Dist.Sets.Dice: 0.087046 seconds SimilaritySearch.Dist.Sets.Dice: 0.088149 seconds SimilaritySearch.Dist.Sets.Intersection: 0.073032 seconds SimilaritySearch.Dist.Sets.Intersection: 0.070276 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.071065 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.070545 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 9.9s SimilaritySearch.Dist.NormAngle: 0.003848 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.004009 seconds SimilaritySearch.Dist.NormCosine: 0.002712 seconds SimilaritySearch.Dist.NormCosine: 0.002660 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.4s SimilaritySearch.Dist.Bits.Hamming: 0.004172 seconds SimilaritySearch.Dist.Bits.Hamming: 0.004091 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.009084 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008944 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.0s 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, 5.0] Test Summary: | Total Time HSP | 0 5.0s computing farthest point 1, dmax: Inf, imax: 17, n: 30 computing farthest point 2, dmax: 0.8810212, imax: 12, n: 30 computing farthest point 3, dmax: 0.87598324, imax: 26, n: 30 computing farthest point 4, dmax: 0.7713879, imax: 8, n: 30 computing farthest point 5, dmax: 0.7333632, imax: 30, n: 30 computing farthest point 6, dmax: 0.6893175, imax: 3, n: 30 computing farthest point 7, dmax: 0.6547068, imax: 27, n: 30 computing farthest point 8, dmax: 0.6264081, imax: 1, n: 30 computing farthest point 9, dmax: 0.53030896, imax: 24, n: 30 computing farthest point 10, dmax: 0.52864695, imax: 10, 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.314707 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.003668 seconds SEARCH Exhaustive 2: 0.003909 seconds SEARCH Exhaustive 3: 0.004974 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-04-16T23:46:45.790 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-04-16T23:46:49.128 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=4, Δ=1.0, maxvisits=248) mem=1GB max-rss=1GB 2026-04-16T23:46:57.656 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=15439 ep=15439 n=15438 BeamSearch(bsize=6, Δ=0.88, maxvisits=594) mem=1GB max-rss=1GB 2026-04-16T23:46:59.656 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=28172 ep=28172 n=28171 BeamSearch(bsize=13, Δ=0.92, maxvisits=794) mem=1GB max-rss=1GB 2026-04-16T23:47:01.656 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=37878 ep=37878 n=37877 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=658) mem=1GB max-rss=1GB 2026-04-16T23:47:03.678 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=49541 ep=49541 n=49540 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=658) mem=1GB max-rss=1GB 2026-04-16T23:47:05.678 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=59986 ep=59986 n=59985 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:47:07.678 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=70535 ep=70535 n=70534 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:47:09.679 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=80591 ep=80591 n=80590 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:47:11.679 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=89304 ep=89304 n=89303 BeamSearch(bsize=8, Δ=0.95, maxvisits=750) mem=1GB max-rss=1GB 2026-04-16T23:47:13.679 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=98311 ep=98311 n=98310 BeamSearch(bsize=8, Δ=0.95, maxvisits=750) mem=1GB max-rss=1GB 2026-04-16T23:47:15.679 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, 116.0] [ Info: minrecall: queries per second: 12217.008125324415, recall: 0.903 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.80311435, maxvisits=848)) 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, 116.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=658)), 1000, 8) [ Info: rebuild: queries per second: 15071.616856831788, recall: 0.89625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=658)) 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, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0571429, maxvisits=912)), 1000, 8) 2.313610 seconds (488.81 k allocations: 29.707 MiB, 2.36% gc time, 96.85% compilation time) [ Info: matrixhints: queries per second: 14173.741525183315, recall: 0.9035 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0571429, maxvisits=912)) 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, 116.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-04-16T23:48:40.082 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.0, maxvisits=248) mem=1GB max-rss=1GB 2026-04-16T23:48:43.223 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=17895 ep=17895 n=17894 BeamSearch(bsize=4, Δ=1.0238096, maxvisits=602) mem=1GB max-rss=1GB 2026-04-16T23:48:45.223 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=32420 ep=32420 n=32419 BeamSearch(bsize=13, Δ=0.92, maxvisits=794) mem=1GB max-rss=1GB 2026-04-16T23:48:47.223 LOG n.size quantiles:[3.0, 3.0, 3.0, 3.0, 3.0] LOG add! sp=45090 ep=45090 n=45089 BeamSearch(bsize=4, Δ=1.0285715, maxvisits=658) mem=1GB max-rss=1GB 2026-04-16T23:48:49.223 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=56817 ep=56817 n=56816 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:48:51.338 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=68942 ep=68942 n=68941 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:48:53.338 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=80695 ep=80695 n=80694 BeamSearch(bsize=6, Δ=0.89, maxvisits=670) mem=1GB max-rss=1GB 2026-04-16T23:48:55.338 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=89761 ep=89761 n=89760 BeamSearch(bsize=8, Δ=0.95, maxvisits=750) mem=1GB max-rss=1GB 2026-04-16T23:48:57.338 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=99734 ep=99734 n=99733 BeamSearch(bsize=8, Δ=0.95, maxvisits=750) mem=1GB max-rss=1GB 2026-04-16T23:48:59.338 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) = [2.0, 9.0, 10.0, 12.0, 13.0, 15.0, 17.0, 20.0, 24.0, 30.0, 116.0] [ Info: minrecall: queries per second: 11789.19106131273, recall: 0.903 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.80311435, maxvisits=848)) 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, 116.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=658)), 1000, 8) [ Info: rebuild: queries per second: 14862.338407925206, recall: 0.89625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=658)) 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, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0571429, maxvisits=912)), 1000, 8) 2.667325 seconds (483.67 k allocations: 29.231 MiB, 2.83% gc time, 96.89% compilation time) [ Info: matrixhints: queries per second: 12265.766032352798, recall: 0.9035 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0571429, maxvisits=912)) 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, 116.0] 1.396766 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001144 seconds SEARCH Exhaustive 2: 0.001366 seconds SEARCH Exhaustive 3: 0.001158 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-04-16T23:50:24.503 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=8, Δ=1.0238096, maxvisits=294) mem=1GB max-rss=1GB 2026-04-16T23:50:32.753 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=16962 ep=16962 n=16961 BeamSearch(bsize=12, Δ=1.05, maxvisits=862) mem=1GB max-rss=1GB 2026-04-16T23:50:34.753 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=30285 ep=30285 n=30284 BeamSearch(bsize=6, Δ=0.95, maxvisits=656) mem=1GB max-rss=1GB 2026-04-16T23:50:36.754 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=43639 ep=43639 n=43638 BeamSearch(bsize=6, Δ=0.92, maxvisits=772) mem=1GB max-rss=1GB 2026-04-16T23:50:38.754 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=56295 ep=56295 n=56294 BeamSearch(bsize=6, Δ=0.92, maxvisits=772) mem=1GB max-rss=1GB 2026-04-16T23:50:40.754 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=68062 ep=68062 n=68061 BeamSearch(bsize=6, Δ=0.861678, maxvisits=706) mem=1GB max-rss=1GB 2026-04-16T23:50:42.754 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=79708 ep=79708 n=79707 BeamSearch(bsize=6, Δ=0.861678, maxvisits=706) mem=1GB max-rss=1GB 2026-04-16T23:50:44.754 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=90049 ep=90049 n=90048 BeamSearch(bsize=4, Δ=0.94, maxvisits=626) mem=1GB max-rss=1GB 2026-04-16T23:50:46.754 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, 112.0] [ Info: minrecall: queries per second: 14208.710584663859, recall: 0.904375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.82, maxvisits=878)) 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, 112.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.88, maxvisits=632)), 1000, 8) [ Info: rebuild: queries per second: 16642.112893303885, recall: 0.903375 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.88, maxvisits=632)) 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.93333334, maxvisits=910)), 1000, 8) 2.723392 seconds (427.82 k allocations: 25.927 MiB, 97.03% compilation time) [ Info: matrixhints: queries per second: 13097.402830859552, recall: 0.900625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.93333334, maxvisits=910)) 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, 112.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 5m27.9s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:56.599 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-16T23:51:56.904 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:58.557 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000012, 0x00000028, 0x0000002d, 0x0000002e] D.nn = Int32[1, 2, 3, 4, 5, 4, 5, 2, 2, 5, 5, 2, 2, 1, 1, 2, 2, 18, 5, 4, 4, 2, 2, 18, 18, 18, 5, 4, 18, 4, 18, 2, 2, 2, 2, 2, 2, 5, 5, 40, 1, 2, 2, 40, 45, 46, 2, 1, 5, 2, 2, 5, 2, 4, 46, 18, 18, 5, 4, 40, 2, 2, 1, 46, 18, 40, 2, 2, 40, 18, 18, 18, 2, 5, 5, 5, 18, 3, 2, 2, 40, 5, 2, 4, 4, 4, 46, 18, 46, 4, 2, 2, 3, 2, 3, 45, 5, 18, 5, 5] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.042403877, 0.029657185, 0.030976832, 0.06385958, 0.04101813, 0.02477789, 0.078656435, 0.037255943, 0.0820421, 0.06633645, 0.007643163, 0.05830139, 0.0, 0.05121243, 0.060783744, 0.01798004, 0.02631396, 0.020198286, 0.04222083, 0.02406007, 0.039574265, 0.015308499, 0.048984766, 0.034947455, 0.06636989, 0.04147458, 0.033426344, 0.0125153065, 0.016321838, 0.022379577, 0.09536445, 0.042989075, 0.03418088, 0.027900577, 0.0, 0.08948517, 0.0909853, 0.03324783, 0.032394826, 0.0, 0.0, 0.020475924, 0.06822467, 0.033575118, 0.07727927, 0.04443431, 0.09679413, 0.030022621, 0.082650304, 0.05653858, 0.053851485, 0.042780638, 0.021025062, 0.04541844, 0.030008316, 0.026901126, 0.018504381, 0.016976655, 0.027930796, 0.08581078, 0.05457908, 0.054275036, 0.04832554, 0.03259331, 0.07962668, 0.021866739, 0.022646666, 0.049735785, 0.040763497, 0.010800362, 0.010891736, 0.037325323, 0.008885443, 0.027920067, 0.046423256, 0.017613411, 0.07327324, 0.025246799, 0.049081206, 0.031633377, 0.04248339, 0.034396112, 0.093214154, 0.032236814, 0.056129813, 0.020510256, 0.03732449, 0.057210445, 0.017803371, 0.02714008, 0.02152437, 0.048798203, 0.06644863, 0.071477115, 0.042852044] Test Summary: | Pass Total Time neardup single block | 3 3 20.2s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.581 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-16T23:51:59.581 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 5, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.581 [ Info: neardup> range: 33:48, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.581 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.582 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.582 [ Info: neardup> range: 81:96, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.582 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.582 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.582 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000012, 0x00000028, 0x0000002d, 0x0000002e] D.nn = Int32[1, 2, 3, 4, 5, 4, 5, 2, 2, 5, 5, 2, 2, 1, 1, 2, 2, 18, 5, 4, 4, 2, 2, 18, 18, 18, 5, 4, 18, 4, 5, 2, 2, 2, 2, 2, 2, 5, 5, 40, 1, 2, 2, 5, 45, 46, 2, 1, 5, 2, 2, 5, 2, 4, 46, 18, 18, 5, 4, 40, 2, 2, 1, 46, 18, 40, 2, 2, 40, 18, 18, 18, 2, 5, 5, 5, 18, 3, 2, 2, 40, 5, 2, 4, 4, 4, 46, 18, 46, 4, 2, 2, 3, 2, 3, 45, 5, 18, 5, 5] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.042403877, 0.029657185, 0.030976832, 0.06385958, 0.04101813, 0.02477789, 0.078656435, 0.037255943, 0.0820421, 0.06633645, 0.007643163, 0.05830139, 0.0, 0.05121243, 0.060783744, 0.01798004, 0.02631396, 0.020198286, 0.04222083, 0.02406007, 0.039574265, 0.015308499, 0.048984766, 0.034947455, 0.06636989, 0.09945017, 0.033426344, 0.0125153065, 0.016321838, 0.022379577, 0.09536445, 0.042989075, 0.03418088, 0.027900577, 0.0, 0.08948517, 0.0909853, 0.03324783, 0.061714113, 0.0, 0.0, 0.020475924, 0.06822467, 0.033575118, 0.07727927, 0.04443431, 0.09679413, 0.030022621, 0.082650304, 0.05653858, 0.053851485, 0.042780638, 0.021025062, 0.04541844, 0.030008316, 0.026901126, 0.018504381, 0.016976655, 0.027930796, 0.08581078, 0.05457908, 0.054275036, 0.04832554, 0.03259331, 0.07962668, 0.021866739, 0.022646666, 0.049735785, 0.040763497, 0.010800362, 0.010891736, 0.037325323, 0.008885443, 0.027920067, 0.046423256, 0.017613411, 0.07327324, 0.025246799, 0.049081206, 0.031633377, 0.04248339, 0.034396112, 0.093214154, 0.032236814, 0.056129813, 0.020510256, 0.03732449, 0.057210445, 0.017803371, 0.02714008, 0.02152437, 0.048798203, 0.06644863, 0.071477115, 0.042852044] 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-04-16T23:51:59.731 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-16T23:51:59.732 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-04-16T23:51:59.733 [ Info: neardup> range: 33:48, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 [ Info: neardup> range: 49:64, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 [ Info: neardup> range: 65:80, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 [ Info: neardup> range: 81:96, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 [ Info: neardup> range: 97:100, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 [ Info: neardup> finished current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:51:59.733 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x0000001a, 0x0000002e] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 13, 8, 10, 4, 4, 16, 16, 8, 8, 26, 5, 4, 8, 6, 11, 2, 8, 16, 16, 14, 2, 11, 5, 10, 15, 12, 9, 10, 12, 46, 13, 15, 10, 14, 12, 11, 2, 4, 46, 12, 26, 5, 4, 7, 2, 8, 1, 46, 26, 15, 13, 7, 15, 7, 26, 8, 9, 10, 5, 5, 8, 3, 16, 9, 10, 9, 8, 6, 6, 6, 46, 26, 46, 4, 8, 6, 3, 2, 3, 9, 11, 46, 9, 11] 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.018380284, 0.024497807, 0.027882755, 0.060783744, 0.01798004, 0.013076484, 0.013105214, 0.09204233, 0.06417233, 0.0, 0.015308499, 0.048984766, 0.05543691, 0.032859743, 0.030713499, 0.033426344, 0.008303583, 0.0066992044, 0.009292781, 0.007531345, 0.042989075, 0.0177657, 0.027900577, 0.06454086, 0.02101469, 0.03118831, 0.025248945, 0.00916779, 0.024793446, 0.0, 0.0072273016, 0.004473388, 0.01382941, 0.028474271, 0.015221834, 0.059314072, 0.030022621, 0.082650304, 0.05653858, 0.0577085, 0.048287928, 0.021025062, 0.04541844, 0.015752554, 0.026901126, 0.003105104, 0.016976655, 0.027930796, 0.073586226, 0.0066895485, 0.009867728, 0.011001766, 0.021310449, 0.030331612, 0.011632204, 0.023171663, 0.026079178, 0.024887562, 0.010800362, 0.010891736, 0.032168627, 0.008885443, 0.021635532, 0.026011527, 0.05055237, 0.010756493, 0.009456158, 0.017512023, 0.020684183, 0.009282827, 0.034396112, 0.04467231, 0.032236814, 0.056129813, 0.0018728375, 0.013893366, 0.057210445, 0.017803371, 0.02714008, 0.01322341, 0.019987822, 0.07750726, 0.014220476, 0.005769849] 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-04-16T23:52:10.728 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=5 n=5 mem=32768 max-rss=690 2026-04-16T23:52:10.729 [ Info: neardup> range: 17:32, current elements: 5, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.734 [ Info: neardup> range: 33:48, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 [ Info: neardup> range: 49:64, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 [ Info: neardup> range: 81:96, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-16T23:52:10.735 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000012, 0x00000028, 0x0000002d, 0x0000002e] D.nn = Int32[1, 2, 3, 4, 5, 4, 5, 2, 2, 5, 5, 2, 2, 1, 1, 2, 2, 18, 5, 4, 4, 2, 2, 18, 18, 18, 5, 4, 18, 4, 5, 2, 2, 2, 2, 2, 2, 5, 5, 40, 1, 2, 2, 5, 45, 46, 2, 1, 5, 2, 2, 5, 2, 4, 46, 18, 18, 5, 4, 40, 2, 2, 1, 46, 18, 40, 2, 2, 40, 18, 18, 18, 2, 5, 5, 5, 18, 3, 2, 2, 40, 5, 2, 4, 4, 4, 46, 18, 46, 4, 2, 2, 3, 2, 3, 45, 5, 18, 5, 5] D.dist = Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.042403877, 0.029657185, 0.030976832, 0.06385958, 0.04101813, 0.02477789, 0.078656435, 0.037255943, 0.0820421, 0.06633645, 0.007643163, 0.05830139, 0.0, 0.05121243, 0.060783744, 0.01798004, 0.02631396, 0.020198286, 0.04222083, 0.02406007, 0.039574265, 0.015308499, 0.048984766, 0.034947455, 0.06636989, 0.09945017, 0.033426344, 0.0125153065, 0.016321838, 0.022379577, 0.09536445, 0.042989075, 0.03418088, 0.027900577, 0.0, 0.08948517, 0.0909853, 0.03324783, 0.061714113, 0.0, 0.0, 0.020475924, 0.06822467, 0.033575118, 0.07727927, 0.04443431, 0.09679413, 0.030022621, 0.082650304, 0.05653858, 0.053851485, 0.042780638, 0.021025062, 0.04541844, 0.030008316, 0.026901126, 0.018504381, 0.016976655, 0.027930796, 0.08581078, 0.05457908, 0.054275036, 0.04832554, 0.03259331, 0.07962668, 0.021866739, 0.022646666, 0.049735785, 0.040763497, 0.010800362, 0.010891736, 0.037325323, 0.008885443, 0.027920067, 0.046423256, 0.017613411, 0.07327324, 0.025246799, 0.049081206, 0.031633377, 0.04248339, 0.034396112, 0.093214154, 0.032236814, 0.056129813, 0.020510256, 0.03732449, 0.057210445, 0.017803371, 0.02714008, 0.02152437, 0.048798203, 0.06644863, 0.071477115, 0.042852044] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 11.0s ExhaustiveSearch allknn: 1.564347 seconds (470.84 k allocations: 28.072 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.03743450343608856, 0.14362680539488792, 0.2052748054265976, 0.25770241022109985, 0.38135793805122375] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.10125575959682465, 0.22067707404494286, 0.2646154314279556, 0.3015203922986984, 0.5018823742866516] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.18878047168254852, 0.2607080638408661, 0.3038157969713211, 0.3411899656057358, 0.5373889207839966] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.19511201977729797, 0.30356045067310333, 0.33630208671092987, 0.3726491183042526, 0.589529812335968] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.2069387584924698, 0.3249455466866493, 0.3582335263490677, 0.40407006442546844, 0.6053377389907837] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-16T23:52:19.196 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.516842 seconds (598.36 k allocations: 37.745 MiB, 99.99% compilation time) recall = 0.9683333333333333 recall > 0.8 = true recall = 0.9683333333333333 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [2.0, 5.0, 6.0, 9.0, 18.0] Test Summary: | Pass Total Time allknn | 3 3 23.5s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-16T23:52:40.148 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.95, maxvisits=168) mem=1GB max-rss=1GB 2026-04-16T23:52:50.255 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (7, 471, -1.1920929f-7) (i, j, d, :parallel) = (7, 471, -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 => 17.788876597999998, :exact => 1.059339715) Test Summary: | Pass Total Time closestpair | 4 4 19.4s Testing SimilaritySearch tests passed Testing completed after 512.26s PkgEval succeeded after 593.59s