Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2064 (1d5dcac2d2*) started at 2026-04-21T19:37:57.538 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 15.5s ################################################################################ # 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.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 6.5s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 3.9 s ✓ SearchModels 9.8 s ✓ SimilaritySearch 2 dependencies successfully precompiled in 15 seconds. 108 already precompiled. Precompilation completed after 44.2s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_8oCcno/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.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_8oCcno/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.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.69.0+0 [3f19e933] p7zip_jll v17.8.0+0 Testing Running tests... Test Summary: | Pass Total Time test database abstractions | 57 57 18.0s 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.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.029504 seconds SimilaritySearch.Dist.L2: 0.029164 seconds SimilaritySearch.Dist.L1: 0.029523 seconds SimilaritySearch.Dist.L1: 0.030811 seconds SimilaritySearch.Dist.LInfty: 0.027812 seconds SimilaritySearch.Dist.LInfty: 0.028555 seconds SimilaritySearch.Dist.SqL2: 0.029131 seconds SimilaritySearch.Dist.SqL2: 0.028440 seconds SimilaritySearch.Dist.Lp: 0.132751 seconds SimilaritySearch.Dist.Lp: 0.132838 seconds SimilaritySearch.Dist.Lp: 0.256666 seconds SimilaritySearch.Dist.Lp: 0.256771 seconds SimilaritySearch.Dist.Angle: 0.188969 seconds (5.21 k allocations: 279.094 KiB) SimilaritySearch.Dist.Angle: 0.175780 seconds SimilaritySearch.Dist.Cosine: 0.153916 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.153821 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 24.9s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016569 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.015897 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.272042 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.272145 seconds SimilaritySearch.Dist.Seqs.LCS: 0.257925 seconds SimilaritySearch.Dist.Seqs.LCS: 0.259793 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.025127 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.024969 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.2s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.070802 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.066171 seconds SimilaritySearch.Dist.Sets.Dice: 0.066271 seconds SimilaritySearch.Dist.Sets.Dice: 0.065344 seconds SimilaritySearch.Dist.Sets.Intersection: 0.070825 seconds SimilaritySearch.Dist.Sets.Intersection: 0.071062 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.068810 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.068939 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 10.1s SimilaritySearch.Dist.NormAngle: 0.003825 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.004957 seconds SimilaritySearch.Dist.NormCosine: 0.002820 seconds SimilaritySearch.Dist.NormCosine: 0.002854 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.8s SimilaritySearch.Dist.Bits.Hamming: 0.005198 seconds SimilaritySearch.Dist.Bits.Hamming: 0.005174 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008316 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008571 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.5s 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.2s computing farthest point 1, dmax: Inf, imax: 28, n: 30 computing farthest point 2, dmax: 1.0477908, imax: 26, n: 30 computing farthest point 3, dmax: 1.0168821, imax: 12, n: 30 computing farthest point 4, dmax: 0.76199734, imax: 27, n: 30 computing farthest point 5, dmax: 0.6542105, imax: 24, n: 30 computing farthest point 6, dmax: 0.6240334, imax: 1, n: 30 computing farthest point 7, dmax: 0.6056246, imax: 9, n: 30 computing farthest point 8, dmax: 0.53363585, imax: 20, n: 30 computing farthest point 9, dmax: 0.47094393, imax: 15, n: 30 computing farthest point 10, dmax: 0.4439599, imax: 3, 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.5s 5.016855 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.003679 seconds SEARCH Exhaustive 2: 0.003510 seconds SEARCH Exhaustive 3: 0.004539 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-21T19:41:39.997 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-21T19:41:43.683 LOG n.size quantiles:[1.0, 1.0, 1.0, 1.0, 1.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=10, Δ=1.05, maxvisits=312) mem=1GB max-rss=1GB 2026-04-21T19:41:53.215 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=14832 ep=14832 n=14831 BeamSearch(bsize=8, Δ=0.94, maxvisits=668) mem=1GB max-rss=1GB 2026-04-21T19:41:55.215 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=27830 ep=27830 n=27829 BeamSearch(bsize=4, Δ=0.99999994, maxvisits=594) mem=1GB max-rss=1GB 2026-04-21T19:41:57.215 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=39526 ep=39526 n=39525 BeamSearch(bsize=6, Δ=0.7990498, maxvisits=794) mem=1GB max-rss=1GB 2026-04-21T19:41:59.215 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=51397 ep=51397 n=51396 BeamSearch(bsize=6, Δ=0.7990498, maxvisits=794) mem=1GB max-rss=1GB 2026-04-21T19:42:01.215 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=61081 ep=61081 n=61080 BeamSearch(bsize=6, Δ=0.85, maxvisits=582) mem=1GB max-rss=1GB 2026-04-21T19:42:03.215 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=71108 ep=71108 n=71107 BeamSearch(bsize=6, Δ=0.85, maxvisits=582) mem=1GB max-rss=1GB 2026-04-21T19:42:05.215 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=80470 ep=80470 n=80469 BeamSearch(bsize=6, Δ=0.85, maxvisits=582) mem=1GB max-rss=1GB 2026-04-21T19:42:07.216 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=88653 ep=88653 n=88652 BeamSearch(bsize=4, Δ=0.95, maxvisits=686) mem=1GB max-rss=1GB 2026-04-21T19:42:09.216 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=97382 ep=97382 n=97381 BeamSearch(bsize=4, Δ=0.95, maxvisits=686) mem=1GB max-rss=1GB 2026-04-21T19:42:11.216 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.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, 19.0, 23.0, 30.0, 108.0] [ Info: minrecall: queries per second: 11613.292458414977, recall: 0.9005 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.075, maxvisits=896)) 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, 19.0, 23.0, 30.0, 108.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7809524, maxvisits=730)), 1000, 8) [ Info: rebuild: queries per second: 14479.456655493112, recall: 0.876875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7809524, maxvisits=730)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.83, maxvisits=1018)), 1000, 8) 2.648862 seconds (488.81 k allocations: 29.703 MiB, 96.62% compilation time) [ Info: matrixhints: queries per second: 10541.411868004277, recall: 0.90275 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.83, maxvisits=1018)) 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, 19.0, 23.0, 30.0, 108.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-21T19:43:49.385 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=10, Δ=1.05, maxvisits=312) mem=1GB max-rss=1GB 2026-04-21T19:43:52.782 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=15427 ep=15427 n=15426 BeamSearch(bsize=8, Δ=0.94, maxvisits=668) mem=1GB max-rss=1GB 2026-04-21T19:43:54.782 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=29845 ep=29845 n=29844 BeamSearch(bsize=4, Δ=0.99999994, maxvisits=594) mem=1GB max-rss=1GB 2026-04-21T19:43:56.782 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=43728 ep=43728 n=43727 BeamSearch(bsize=6, Δ=0.7990498, maxvisits=794) mem=1GB max-rss=1GB 2026-04-21T19:43:58.782 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=55428 ep=55428 n=55427 BeamSearch(bsize=6, Δ=0.7990498, maxvisits=794) mem=1GB max-rss=1GB 2026-04-21T19:44:00.782 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=65374 ep=65374 n=65373 BeamSearch(bsize=6, Δ=0.85, maxvisits=582) mem=1GB max-rss=1GB 2026-04-21T19:44:02.782 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=76222 ep=76222 n=76221 BeamSearch(bsize=6, Δ=0.85, maxvisits=582) mem=1GB max-rss=1GB 2026-04-21T19:44:04.783 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=85613 ep=85613 n=85612 BeamSearch(bsize=4, Δ=0.95, maxvisits=686) mem=1GB max-rss=1GB 2026-04-21T19:44:06.783 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=96404 ep=96404 n=96403 BeamSearch(bsize=4, Δ=0.95, maxvisits=686) mem=1GB max-rss=1GB 2026-04-21T19:44:08.783 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, 19.0, 23.0, 30.0, 108.0] [ Info: minrecall: queries per second: 10490.201999224795, recall: 0.9005 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.075, maxvisits=896)) 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, 19.0, 23.0, 30.0, 108.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7809524, maxvisits=730)), 1000, 8) [ Info: rebuild: queries per second: 13099.442610857244, recall: 0.876875 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=6, Δ=0.7809524, maxvisits=730)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [5.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 54.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.83, maxvisits=1018)), 1000, 8) 2.623978 seconds (483.68 k allocations: 29.232 MiB, 96.52% compilation time) [ Info: matrixhints: queries per second: 11020.573183978706, recall: 0.90275 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.83, maxvisits=1018)) 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, 19.0, 23.0, 30.0, 108.0] 0.992810 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001185 seconds SEARCH Exhaustive 2: 0.001236 seconds SEARCH Exhaustive 3: 0.001194 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-21T19:45:45.548 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] LOG add! sp=293 ep=293 n=292 BeamSearch(bsize=16, Δ=1.1, maxvisits=348) mem=1GB max-rss=1GB 2026-04-21T19:45:54.407 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=18112 ep=18112 n=18111 BeamSearch(bsize=6, Δ=0.8707483, maxvisits=600) mem=1GB max-rss=1GB 2026-04-21T19:45:56.407 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=32950 ep=32950 n=32949 BeamSearch(bsize=4, Δ=0.95238096, maxvisits=626) mem=1GB max-rss=1GB 2026-04-21T19:45:58.407 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=44983 ep=44983 n=44982 BeamSearch(bsize=4, Δ=0.9714286, maxvisits=646) mem=1GB max-rss=1GB 2026-04-21T19:46:00.407 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=56749 ep=56749 n=56748 BeamSearch(bsize=4, Δ=0.9714286, maxvisits=646) mem=1GB max-rss=1GB 2026-04-21T19:46:02.407 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=68744 ep=68744 n=68743 BeamSearch(bsize=4, Δ=0.8, maxvisits=632) mem=1GB max-rss=1GB 2026-04-21T19:46:04.408 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.0] LOG add! sp=80711 ep=80711 n=80710 BeamSearch(bsize=4, Δ=0.8, maxvisits=632) mem=1GB max-rss=1GB 2026-04-21T19:46:06.408 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=90246 ep=90246 n=90245 BeamSearch(bsize=8, Δ=0.89, maxvisits=796) mem=1GB max-rss=1GB 2026-04-21T19:46:08.408 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=99695 ep=99695 n=99694 BeamSearch(bsize=8, Δ=0.89, maxvisits=796) mem=1GB max-rss=1GB 2026-04-21T19:46:10.408 LOG n.size quantiles:[14.0, 14.0, 14.0, 14.0, 14.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, 19.0, 23.0, 30.0, 107.0] [ Info: minrecall: queries per second: 14817.486572282538, recall: 0.90225 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.0761905, maxvisits=838)) 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, 19.0, 23.0, 30.0, 107.0] [ Info: ===================== rebuild ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.87, maxvisits=648)), 1000, 8) [ Info: rebuild: queries per second: 15215.196280748733, recall: 0.90325 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.87, maxvisits=648)) 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=4, Δ=0.8526077, maxvisits=842)), 1000, 8) 2.785768 seconds (427.82 k allocations: 25.927 MiB, 97.28% compilation time) [ Info: matrixhints: queries per second: 13227.390051817507, recall: 0.902 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8526077, maxvisits=842)) 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, 19.0, 23.0, 30.0, 107.0] Test Summary: | Pass Total Time vector indexing with SearchGraph | 27 27 6m01.3s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:22.843 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-21T19:47:23.172 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> finished current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:24.896 D.map = UInt32[0x00000001, 0x00000003, 0x00000004, 0x0000000e, 0x00000019, 0x00000028, 0x0000003f, 0x00000048] D.nn = Int32[1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 3, 3, 3, 14, 3, 14, 1, 14, 1, 14, 14, 1, 14, 14, 25, 1, 25, 14, 4, 25, 1, 1, 1, 25, 4, 1, 14, 1, 1, 40, 4, 40, 25, 40, 14, 3, 40, 4, 3, 4, 4, 4, 14, 4, 3, 3, 1, 40, 4, 3, 1, 4, 63, 3, 1, 4, 25, 4, 40, 3, 1, 72, 3, 14, 14, 40, 1, 3, 14, 25, 40, 3, 1, 4, 14, 14, 1, 4, 3, 14, 63, 40, 63, 4, 4, 63, 1, 25, 14, 14] D.dist = Float32[0.0, 0.048972428, 0.0, 0.0, 0.049144745, 0.0056155324, 0.040562987, 0.051600695, 0.00707376, 0.0291875, 0.051876128, 0.05572158, 0.061291277, 0.0, 0.044375718, 0.029165924, 0.0004619956, 0.010311604, 0.06203264, 0.0783906, 0.030117512, 0.03501928, 0.042256534, 0.073761284, 0.0, 0.08990401, 0.02216947, 0.03496176, 0.008984327, 0.013673604, 0.058846533, 0.006609082, 0.043163538, 0.074491024, 0.005153537, 0.040708482, 0.004981935, 0.04241085, 0.02038765, 0.0, 0.017131567, 0.036777854, 0.018469632, 0.0057066083, 0.014344573, 0.04723966, 0.09630942, 0.05908847, 0.03919971, 0.02121532, 0.037218034, 0.048170507, 0.08481002, 0.0433321, 0.02486682, 0.038245976, 0.030304313, 0.020131052, 0.048464477, 0.06173122, 0.06737727, 0.07767308, 0.0, 0.06914401, 0.063023984, 0.004893601, 0.008552372, 0.022579193, 0.0052682757, 0.007253349, 0.034918547, 0.0, 0.027370691, 0.06548613, 0.036341965, 0.03250456, 0.023325264, 0.06131059, 0.050182283, 0.007745266, 0.022081256, 0.021527112, 0.017405808, 0.05851996, 0.09966856, 0.05706525, 0.018966317, 0.03477925, 0.011275947, 0.054163277, 0.026176572, 0.02249688, 0.060951054, 0.051757216, 0.043759346, 0.03266877, 0.03657663, 0.0268265, 0.045884907, 0.0028933287] Test Summary: | Pass Total Time neardup single block | 3 3 21.2s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.980 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-21T19:47:25.981 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] [ Info: neardup> range: 17:32, current elements: 4, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.981 [ Info: neardup> range: 33:48, current elements: 5, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.981 [ Info: neardup> range: 49:64, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.981 [ Info: neardup> range: 65:80, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.981 [ Info: neardup> range: 81:96, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.982 [ Info: neardup> range: 97:100, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.982 [ Info: neardup> finished current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:25.982 D.map = UInt32[0x00000001, 0x00000003, 0x00000004, 0x0000000e, 0x00000019, 0x00000028, 0x0000003f, 0x00000048] D.nn = Int32[1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 3, 3, 3, 14, 3, 14, 1, 14, 1, 14, 14, 1, 14, 14, 25, 1, 14, 14, 4, 14, 1, 1, 1, 25, 4, 1, 14, 1, 1, 40, 4, 1, 25, 40, 14, 3, 40, 4, 3, 4, 4, 4, 14, 4, 3, 3, 1, 40, 4, 3, 1, 4, 63, 3, 1, 4, 25, 4, 40, 3, 1, 72, 3, 14, 14, 40, 1, 3, 14, 25, 40, 3, 1, 4, 14, 14, 1, 4, 3, 14, 63, 40, 63, 4, 4, 63, 1, 25, 14, 14] D.dist = Float32[0.0, 0.048972428, 0.0, 0.0, 0.049144745, 0.0056155324, 0.040562987, 0.051600695, 0.00707376, 0.0291875, 0.051876128, 0.05572158, 0.061291277, 0.0, 0.044375718, 0.029165924, 0.0004619956, 0.010311604, 0.06203264, 0.0783906, 0.030117512, 0.03501928, 0.042256534, 0.073761284, 0.0, 0.08990401, 0.0632481, 0.03496176, 0.008984327, 0.06296742, 0.058846533, 0.006609082, 0.043163538, 0.074491024, 0.005153537, 0.040708482, 0.004981935, 0.04241085, 0.02038765, 0.0, 0.017131567, 0.07701713, 0.018469632, 0.0057066083, 0.014344573, 0.04723966, 0.09630942, 0.05908847, 0.03919971, 0.02121532, 0.037218034, 0.048170507, 0.08481002, 0.0433321, 0.02486682, 0.038245976, 0.030304313, 0.020131052, 0.048464477, 0.06173122, 0.06737727, 0.07767308, 0.0, 0.06914401, 0.063023984, 0.004893601, 0.008552372, 0.022579193, 0.0052682757, 0.007253349, 0.034918547, 0.0, 0.027370691, 0.06548613, 0.036341965, 0.03250456, 0.023325264, 0.06131059, 0.050182283, 0.007745266, 0.022081256, 0.021527112, 0.017405808, 0.05851996, 0.09966856, 0.05706525, 0.018966317, 0.03477925, 0.011275947, 0.054163277, 0.026176572, 0.02249688, 0.060951054, 0.051757216, 0.043759346, 0.03266877, 0.03657663, 0.0268265, 0.045884907, 0.0028933287] 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-21T19:47:26.139 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-21T19:47:26.140 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-21T19:47:26.142 [ Info: neardup> range: 33:48, current elements: 16, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.142 [ Info: neardup> range: 49:64, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.142 [ Info: neardup> range: 65:80, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.143 [ Info: neardup> range: 81:96, current elements: 19, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.143 [ Info: neardup> range: 97:100, current elements: 19, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.143 [ Info: neardup> finished current elements: 19, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:26.143 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x00000022, 0x0000002f, 0x00000048] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 14, 9, 2, 16, 9, 14, 7, 11, 2, 11, 14, 4, 11, 2, 9, 9, 34, 4, 10, 14, 2, 9, 15, 4, 9, 16, 15, 14, 11, 47, 16, 8, 4, 4, 4, 11, 7, 3, 11, 1, 47, 9, 34, 10, 7, 5, 13, 9, 4, 34, 4, 47, 3, 10, 72, 3, 16, 16, 15, 10, 8, 14, 11, 47, 3, 1, 4, 14, 16, 10, 4, 3, 14, 5, 15, 13, 4, 4, 10, 9, 11, 16, 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.0004619956, 0.010311604, 0.031490505, 0.013717353, 0.027624428, 0.016030788, 0.042256534, 0.05898881, 0.04979068, 0.06527853, 0.017764926, 0.03496176, 0.008984327, 0.020662665, 0.035316885, 0.0023735166, 0.023052156, 0.0, 0.005153537, 0.012445867, 0.004981935, 0.005347848, 0.008429587, 0.08147001, 0.017131567, 0.038425326, 0.05401236, 0.07527614, 0.014344573, 0.0145792365, 0.0, 0.0532946, 0.0036649108, 0.02121532, 0.037218034, 0.048170507, 0.083376825, 0.023091793, 0.02486682, 0.001816392, 0.030304313, 0.059769094, 0.04719442, 0.051588893, 0.03360194, 0.040203333, 0.029709399, 0.06493342, 0.03943467, 0.004893601, 0.06934285, 0.022579193, 0.095519364, 0.007253349, 0.026163578, 0.0, 0.027370691, 0.02557218, 0.0115324855, 0.011685848, 0.010547161, 0.003878653, 0.050182283, 0.05953437, 0.035642684, 0.021527112, 0.017405808, 0.05851996, 0.09966856, 0.039646924, 0.0144354105, 0.03477925, 0.011275947, 0.054163277, 0.030694842, 0.033005476, 0.010512173, 0.051757216, 0.043759346, 0.0298056, 0.027782142, 0.059814155, 0.025640666, 0.0028933287] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 0.2s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.934 LOG append_items! ExhaustiveSearch{SimilaritySearch.Dist.Hacks.DistanceWithIdentifiers{SimilaritySearch.Dist.Cosine, MatrixDatabase{Matrix{Float32}}}, VectorDatabase{Vector{Int32}}} sp=0 ep=4 n=4 mem=32768 max-rss=694 2026-04-21T19:47:37.935 [ Info: neardup> range: 17:32, current elements: 4, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> range: 33:48, current elements: 5, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> range: 49:64, current elements: 6, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> range: 65:80, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> range: 81:96, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> range: 97:100, current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 [ Info: neardup> finished current elements: 8, n: 100, ϵ: 0.1, timestamp: 2026-04-21T19:47:37.942 D.map = UInt32[0x00000001, 0x00000003, 0x00000004, 0x0000000e, 0x00000019, 0x00000028, 0x0000003f, 0x00000048] D.nn = Int32[1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 3, 3, 3, 14, 3, 14, 1, 14, 1, 14, 14, 1, 14, 14, 25, 1, 14, 14, 4, 14, 1, 1, 1, 25, 4, 1, 14, 1, 1, 40, 4, 1, 25, 40, 14, 3, 40, 4, 3, 4, 4, 4, 14, 4, 3, 3, 1, 40, 4, 3, 1, 4, 63, 3, 1, 4, 25, 4, 40, 3, 1, 72, 3, 14, 14, 40, 1, 3, 14, 25, 40, 3, 1, 4, 14, 14, 1, 4, 3, 14, 63, 40, 63, 4, 4, 63, 1, 25, 14, 14] D.dist = Float32[0.0, 0.048972428, 0.0, 0.0, 0.049144745, 0.0056155324, 0.040562987, 0.051600695, 0.00707376, 0.0291875, 0.051876128, 0.05572158, 0.061291277, 0.0, 0.044375718, 0.029165924, 0.0004619956, 0.010311604, 0.06203264, 0.0783906, 0.030117512, 0.03501928, 0.042256534, 0.073761284, 0.0, 0.08990401, 0.0632481, 0.03496176, 0.008984327, 0.06296742, 0.058846533, 0.006609082, 0.043163538, 0.074491024, 0.005153537, 0.040708482, 0.004981935, 0.04241085, 0.02038765, 0.0, 0.017131567, 0.07701713, 0.018469632, 0.0057066083, 0.014344573, 0.04723966, 0.09630942, 0.05908847, 0.03919971, 0.02121532, 0.037218034, 0.048170507, 0.08481002, 0.0433321, 0.02486682, 0.038245976, 0.030304313, 0.020131052, 0.048464477, 0.06173122, 0.06737727, 0.07767308, 0.0, 0.06914401, 0.063023984, 0.004893601, 0.008552372, 0.022579193, 0.0052682757, 0.007253349, 0.034918547, 0.0, 0.027370691, 0.06548613, 0.036341965, 0.03250456, 0.023325264, 0.06131059, 0.050182283, 0.007745266, 0.022081256, 0.021527112, 0.017405808, 0.05851996, 0.09966856, 0.05706525, 0.018966317, 0.03477925, 0.011275947, 0.054163277, 0.026176572, 0.02249688, 0.060951054, 0.051757216, 0.043759346, 0.03266877, 0.03657663, 0.0268265, 0.045884907, 0.0028933287] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 11.8s ExhaustiveSearch allknn: 1.707094 seconds (471.03 k allocations: 28.083 MiB, 3.84% gc time, 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.05070137977600098, 0.15254727751016617, 0.20685528218746185, 0.26726800948381424, 0.482856422662735] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.08640457689762115, 0.2176714837551117, 0.26294638216495514, 0.30724036693573, 0.5755859613418579] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.126686230301857, 0.23877206817269325, 0.29012544453144073, 0.3467240631580353, 0.5891905426979065] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.18727895617485046, 0.2701130285859108, 0.31897468864917755, 0.36638452112674713, 0.6010642051696777] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.22786067426204681, 0.2975030839443207, 0.34720635414123535, 0.3897126689553261, 0.6230674982070923] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-21T19:47:47.005 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.499473 seconds (598.37 k allocations: 37.748 MiB, 99.99% compilation time) recall = 0.9766666666666665 recall > 0.8 = true recall = 0.9766666666666665 quantile(neighbors_length.(Ref(G.adj), 1:length(G)), 0:0.25:1) = [1.0, 4.0, 5.0, 7.25, 18.0] Test Summary: | Pass Total Time allknn | 3 3 24.6s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-21T19:48:08.420 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.9523809, maxvisits=160) mem=1GB max-rss=1GB 2026-04-21T19:48:18.632 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (8, 427, -1.1920929f-7) (i, j, d, :parallel) = (8, 427, -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.774222835, :exact => 1.04583612) Test Summary: | Pass Total Time closestpair | 4 4 19.4s Testing SimilaritySearch tests passed Testing completed after 555.75s PkgEval succeeded after 636.6s