Package evaluation to test SimilaritySearch on Julia 1.14.0-DEV.2079 (c0c9a57cb6*) started at 2026-04-23T02:58:07.664 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 15.67s ################################################################################ # 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.12s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 9.8 s ✓ SimilaritySearch 1 dependency successfully precompiled in 11 seconds. 109 already precompiled. Precompilation completed after 39.29s ################################################################################ # Testing # Testing SimilaritySearch Status `/tmp/jl_oF7GiK/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_oF7GiK/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 17.0s Test Summary: | Pass Total Time heap | 16 16 0.2s Test Summary: | Pass Total Time KnnHeap | 30005 30005 4.0s Test Summary: | Pass Total Time XKnn | 25005 25005 2.7s 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.031831 seconds SimilaritySearch.Dist.L2: 0.030916 seconds SimilaritySearch.Dist.L1: 0.030708 seconds SimilaritySearch.Dist.L1: 0.030297 seconds SimilaritySearch.Dist.LInfty: 0.029891 seconds SimilaritySearch.Dist.LInfty: 0.029858 seconds SimilaritySearch.Dist.SqL2: 0.027926 seconds SimilaritySearch.Dist.SqL2: 0.027545 seconds SimilaritySearch.Dist.Lp: 0.135558 seconds SimilaritySearch.Dist.Lp: 0.135839 seconds SimilaritySearch.Dist.Lp: 0.264043 seconds SimilaritySearch.Dist.Lp: 0.264727 seconds SimilaritySearch.Dist.Angle: 0.186924 seconds (5.21 k allocations: 279.062 KiB) SimilaritySearch.Dist.Angle: 0.179613 seconds SimilaritySearch.Dist.Cosine: 0.160790 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.Cosine: 0.162946 seconds Test Summary: | Pass Total Time Searching vectors | 800 800 26.2s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Seqs.CommonPrefix: 0.017211 seconds SimilaritySearch.Dist.Seqs.CommonPrefix: 0.016073 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.269080 seconds SimilaritySearch.Dist.Seqs.Levenshtein: 0.265986 seconds SimilaritySearch.Dist.Seqs.LCS: 0.264283 seconds SimilaritySearch.Dist.Seqs.LCS: 0.265256 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.027943 seconds SimilaritySearch.Dist.Seqs.Hamming: 0.026153 seconds Test Summary: | Pass Total Time Searching sequences | 400 400 11.5s [ Info: (VectorDatabase{Vector{Vector{Int64}}}, SubDatabase{VectorDatabase{Vector{Vector{Int64}}}, Vector{Int64}}) SimilaritySearch.Dist.Sets.Jaccard: 0.072474 seconds SimilaritySearch.Dist.Sets.Jaccard: 0.074473 seconds SimilaritySearch.Dist.Sets.Dice: 0.069883 seconds SimilaritySearch.Dist.Sets.Dice: 0.071282 seconds SimilaritySearch.Dist.Sets.Intersection: 0.072920 seconds SimilaritySearch.Dist.Sets.Intersection: 0.070296 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.069505 seconds SimilaritySearch.Dist.Sets.RogersTanimoto: 0.068117 seconds Test Summary: | Pass Total Time Searching on sets (ordered lists) | 400 400 10.4s SimilaritySearch.Dist.NormAngle: 0.003808 seconds (1 allocation: 16 bytes) SimilaritySearch.Dist.NormAngle: 0.003773 seconds SimilaritySearch.Dist.NormCosine: 0.002822 seconds SimilaritySearch.Dist.NormCosine: 0.002813 seconds Test Summary: | Pass Total Time Searching with angle-based distances | 200 200 5.9s SimilaritySearch.Dist.Bits.Hamming: 0.004101 seconds SimilaritySearch.Dist.Bits.Hamming: 0.004109 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008734 seconds SimilaritySearch.Dist.Bits.RogersTanimoto: 0.008947 seconds Test Summary: | Pass Total Time Binary distances | 200 200 5.2s 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.4s computing farthest point 1, dmax: Inf, imax: 27, n: 30 computing farthest point 2, dmax: 1.0905182, imax: 25, n: 30 computing farthest point 3, dmax: 1.0685261, imax: 18, n: 30 computing farthest point 4, dmax: 0.8963963, imax: 26, n: 30 computing farthest point 5, dmax: 0.7633618, imax: 19, n: 30 computing farthest point 6, dmax: 0.7561872, imax: 23, n: 30 computing farthest point 7, dmax: 0.66686475, imax: 11, n: 30 computing farthest point 8, dmax: 0.6220694, imax: 20, n: 30 computing farthest point 9, dmax: 0.59279555, imax: 30, n: 30 computing farthest point 10, dmax: 0.5690041, imax: 24, 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.4s 5.200446 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.004030 seconds SEARCH Exhaustive 2: 0.004122 seconds SEARCH Exhaustive 3: 0.005039 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-23T03:01:45.971 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-23T03:01:49.583 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.155, maxvisits=316) mem=1GB max-rss=1GB 2026-04-23T03:01:58.811 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=14374 ep=14374 n=14373 BeamSearch(bsize=8, Δ=0.93, maxvisits=660) mem=1GB max-rss=1GB 2026-04-23T03:02:00.811 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=26458 ep=26458 n=26457 BeamSearch(bsize=4, Δ=0.96, maxvisits=562) mem=1GB max-rss=1GB 2026-04-23T03:02:02.811 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=37878 ep=37878 n=37877 BeamSearch(bsize=8, Δ=0.9555, maxvisits=712) mem=1GB max-rss=1GB 2026-04-23T03:02:04.843 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=47670 ep=47670 n=47669 BeamSearch(bsize=8, Δ=0.9555, maxvisits=712) mem=1GB max-rss=1GB 2026-04-23T03:02:06.843 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=55011 ep=55011 n=55010 BeamSearch(bsize=8, Δ=0.9555, maxvisits=712) mem=1GB max-rss=1GB 2026-04-23T03:02:08.843 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=63707 ep=63707 n=63706 BeamSearch(bsize=4, Δ=1.05, maxvisits=704) mem=1GB max-rss=1GB 2026-04-23T03:02:10.843 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=73028 ep=73028 n=73027 BeamSearch(bsize=4, Δ=1.05, maxvisits=704) mem=1GB max-rss=1GB 2026-04-23T03:02:12.843 LOG n.size quantiles:[11.0, 11.0, 11.0, 11.0, 11.0] LOG add! sp=82108 ep=82108 n=82107 BeamSearch(bsize=4, Δ=1.05, maxvisits=704) mem=1GB max-rss=1GB 2026-04-23T03:02:14.844 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=89866 ep=89866 n=89865 BeamSearch(bsize=6, Δ=0.9160998, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:02:16.844 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=98724 ep=98724 n=98723 BeamSearch(bsize=6, Δ=0.9160998, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:02:18.844 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: 12932.245765950405, recall: 0.904125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, maxvisits=858)) 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=3, Δ=0.93333334, maxvisits=660)), 1000, 8) [ Info: rebuild: queries per second: 14859.460780184396, recall: 0.903625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.93333334, maxvisits=660)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, maxvisits=872)), 1000, 8) 3.077450 seconds (488.99 k allocations: 29.711 MiB, 14.24% gc time, 97.42% compilation time) [ Info: matrixhints: queries per second: 12704.08347863417, recall: 0.904125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, 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, 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-23T03:03:44.081 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.155, maxvisits=316) mem=1GB max-rss=1GB 2026-04-23T03:03:47.363 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=17709 ep=17709 n=17708 BeamSearch(bsize=4, Δ=0.9047619, maxvisits=546) mem=1GB max-rss=1GB 2026-04-23T03:03:49.363 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=32864 ep=32864 n=32863 BeamSearch(bsize=4, Δ=0.96, maxvisits=562) mem=1GB max-rss=1GB 2026-04-23T03:03:51.363 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=44449 ep=44449 n=44448 BeamSearch(bsize=8, Δ=0.9555, maxvisits=712) mem=1GB max-rss=1GB 2026-04-23T03:03:53.363 LOG n.size quantiles:[12.0, 12.0, 12.0, 12.0, 12.0] LOG add! sp=54829 ep=54829 n=54828 BeamSearch(bsize=8, Δ=0.9555, maxvisits=712) mem=1GB max-rss=1GB 2026-04-23T03:03:55.363 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=65205 ep=65205 n=65204 BeamSearch(bsize=4, Δ=1.05, maxvisits=704) mem=1GB max-rss=1GB 2026-04-23T03:03:57.363 LOG n.size quantiles:[8.0, 8.0, 8.0, 8.0, 8.0] LOG add! sp=76061 ep=76061 n=76060 BeamSearch(bsize=4, Δ=1.05, maxvisits=704) mem=1GB max-rss=1GB 2026-04-23T03:03:59.363 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=85224 ep=85224 n=85223 BeamSearch(bsize=6, Δ=0.9160998, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:04:01.403 LOG n.size quantiles:[9.0, 9.0, 9.0, 9.0, 9.0] LOG add! sp=95621 ep=95621 n=95620 BeamSearch(bsize=6, Δ=0.9160998, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:04:03.403 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, 24.0, 30.0, 116.0] [ Info: minrecall: queries per second: 13719.620969129057, recall: 0.904125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, maxvisits=858)) 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=3, Δ=0.93333334, maxvisits=660)), 1000, 8) [ Info: rebuild: queries per second: 15984.443683655967, recall: 0.903625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=3, Δ=0.93333334, maxvisits=660)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, maxvisits=872)), 1000, 8) 2.664068 seconds (483.85 k allocations: 29.239 MiB, 96.88% compilation time) [ Info: matrixhints: queries per second: 12106.969628891839, recall: 0.904125 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, 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, 116.0] 1.162397 seconds (3 allocations: 62.586 KiB) SEARCH Exhaustive 1: 0.001178 seconds SEARCH Exhaustive 2: 0.001127 seconds SEARCH Exhaustive 3: 0.001110 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-23T03:05:27.211 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.8309295, maxvisits=270) mem=1GB max-rss=1GB 2026-04-23T03:05:35.753 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=16836 ep=16836 n=16835 BeamSearch(bsize=8, Δ=0.84224164, maxvisits=626) mem=1GB max-rss=1GB 2026-04-23T03:05:37.761 LOG n.size quantiles:[4.0, 4.0, 4.0, 4.0, 4.0] LOG add! sp=31571 ep=31571 n=31570 BeamSearch(bsize=4, Δ=0.8095238, maxvisits=758) mem=1GB max-rss=1GB 2026-04-23T03:05:39.761 LOG n.size quantiles:[10.0, 10.0, 10.0, 10.0, 10.0] LOG add! sp=43833 ep=43833 n=43832 BeamSearch(bsize=8, Δ=0.98, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:05:41.761 LOG n.size quantiles:[13.0, 13.0, 13.0, 13.0, 13.0] LOG add! sp=54667 ep=54667 n=54666 BeamSearch(bsize=8, Δ=0.98, maxvisits=696) mem=1GB max-rss=1GB 2026-04-23T03:05:43.761 LOG n.size quantiles:[5.0, 5.0, 5.0, 5.0, 5.0] LOG add! sp=69376 ep=69376 n=69375 BeamSearch(bsize=6, Δ=0.87, maxvisits=680) mem=1GB max-rss=1GB 2026-04-23T03:05:45.761 LOG n.size quantiles:[7.0, 7.0, 7.0, 7.0, 7.0] LOG add! sp=82171 ep=82171 n=82170 BeamSearch(bsize=6, Δ=0.87, maxvisits=680) mem=1GB max-rss=1GB 2026-04-23T03:05:47.761 LOG n.size quantiles:[6.0, 6.0, 6.0, 6.0, 6.0] LOG add! sp=92175 ep=92175 n=92174 BeamSearch(bsize=6, Δ=0.89, maxvisits=692) mem=1GB max-rss=1GB 2026-04-23T03:05:49.762 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, 112.0] [ Info: minrecall: queries per second: 14603.81350842527, recall: 0.903625 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=2, Δ=1.05, maxvisits=866)) 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.8571428, maxvisits=656)), 1000, 8) [ Info: rebuild: queries per second: 18005.903127304868, recall: 0.90575 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8571428, maxvisits=656)) quantile(neighbors_length.(Ref(graph.adj), 1:length(graph)), 0:0.1:1.0) = [4.0, 16.0, 19.0, 21.0, 23.0, 24.0, 26.0, 28.0, 30.0, 34.0, 55.0] [ Info: ===================== matrixhints ============================== (graph.algo, length(B.queries), B.ksearch) = (Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8095238, maxvisits=894)), 1000, 8) 2.751252 seconds (428.01 k allocations: 25.942 MiB, 96.86% compilation time) [ Info: matrixhints: queries per second: 13544.883280151382, recall: 0.90275 graph.algo = Base.RefValue{BeamSearch}(BeamSearch(bsize=4, Δ=0.8095238, maxvisits=894)) 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 5m33.9s [ Info: neardup> starting: 1:100, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:00.322 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-23T03:07:00.595 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-23T03:07:02.221 D.map = UInt32[0x00000001, 0x00000002, 0x00000005, 0x00000008, 0x00000014, 0x00000019, 0x0000001a, 0x00000031, 0x00000036] D.nn = Int32[1, 2, 2, 1, 5, 5, 1, 8, 2, 1, 2, 1, 2, 5, 1, 5, 1, 5, 1, 20, 5, 2, 8, 1, 25, 26, 2, 8, 1, 2, 2, 5, 25, 20, 1, 25, 8, 20, 26, 20, 1, 8, 8, 20, 5, 5, 8, 25, 49, 1, 1, 5, 20, 54, 2, 49, 49, 5, 2, 2, 25, 8, 8, 1, 54, 1, 5, 5, 2, 1, 8, 2, 1, 25, 1, 5, 1, 5, 8, 1, 2, 1, 2, 5, 20, 8, 5, 20, 2, 5, 2, 8, 1, 5, 49, 20, 8, 8, 26, 5] D.dist = Float32[0.0, 0.0, 0.033767343, 0.019075632, 0.0, 0.08042967, 0.09390479, 0.0, 0.04521084, 0.046565115, 0.039249003, 0.0032402873, 0.08113366, 0.06000328, 0.05147004, 0.04981363, 0.08439654, 0.05215168, 0.05437094, 0.0, 0.011046767, 0.04289919, 0.024101257, 0.060280204, 0.0, 0.0, 0.043683767, 0.05825144, 0.058333278, 0.04340458, 0.027959049, 0.061356008, 0.022755742, 0.03841847, 0.0068410635, 0.029801905, 0.046527505, 0.07412857, 0.003518641, 0.08571148, 0.017902195, 0.06542611, 0.017595053, 0.05640155, 0.0536561, 0.034968495, 0.06084937, 0.096245825, 0.0, 0.044778228, 0.06880826, 0.05021447, 0.053440094, 0.0, 0.0347414, 0.0028526187, 0.017695606, 0.05552554, 0.026374936, 0.05129361, 0.056283176, 0.041101277, 0.031933248, 0.06345159, 0.0055015087, 0.039088845, 0.014120519, 0.08435726, 0.09902793, 0.036673605, 0.03601086, 0.0015360117, 0.02483493, 0.05776769, 0.050014257, 0.0050597787, 0.024201453, 0.033237636, 0.04113847, 0.055909157, 0.018021166, 0.03805071, 0.082793534, 0.07463145, 0.075915754, 0.004585743, 0.005493343, 0.07980883, 0.0459612, 0.031596363, 0.018146932, 0.05076003, 0.06686747, 0.017949462, 0.022517025, 0.04839146, 0.0019399524, 0.03187716, 0.043204844, 0.060624838] Test Summary: | Pass Total Time neardup single block | 3 3 20.1s [ Info: neardup> starting: 1:16, current elements: 0, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.144 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-23T03:07:03.145 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-23T03:07:03.146 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 [ Info: neardup> range: 49:64, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 [ Info: neardup> range: 81:96, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.147 D.map = UInt32[0x00000001, 0x00000002, 0x00000005, 0x00000008, 0x00000014, 0x00000019, 0x0000001a, 0x00000031, 0x00000036] D.nn = Int32[1, 2, 2, 1, 5, 5, 1, 8, 2, 1, 2, 1, 2, 5, 1, 5, 1, 5, 1, 20, 5, 2, 8, 1, 25, 26, 2, 8, 1, 2, 2, 5, 25, 20, 1, 25, 8, 20, 26, 20, 1, 8, 8, 20, 5, 5, 8, 25, 49, 1, 1, 5, 20, 54, 2, 49, 49, 5, 2, 2, 25, 8, 8, 1, 54, 1, 5, 5, 2, 1, 8, 2, 1, 25, 1, 5, 1, 5, 8, 1, 2, 1, 2, 5, 20, 8, 5, 20, 2, 5, 2, 8, 1, 5, 49, 20, 8, 8, 26, 5] D.dist = Float32[0.0, 0.0, 0.033767343, 0.019075632, 0.0, 0.08042967, 0.09390479, 0.0, 0.04521084, 0.046565115, 0.039249003, 0.0032402873, 0.08113366, 0.06000328, 0.05147004, 0.04981363, 0.08439654, 0.05215168, 0.05437094, 0.0, 0.011046767, 0.04289919, 0.024101257, 0.060280204, 0.0, 0.0, 0.043683767, 0.05825144, 0.058333278, 0.04340458, 0.027959049, 0.061356008, 0.022755742, 0.03841847, 0.0068410635, 0.029801905, 0.046527505, 0.07412857, 0.003518641, 0.08571148, 0.017902195, 0.06542611, 0.017595053, 0.05640155, 0.0536561, 0.034968495, 0.06084937, 0.096245825, 0.0, 0.044778228, 0.06880826, 0.05021447, 0.053440094, 0.0, 0.0347414, 0.0028526187, 0.017695606, 0.05552554, 0.026374936, 0.05129361, 0.056283176, 0.041101277, 0.031933248, 0.06345159, 0.0055015087, 0.039088845, 0.014120519, 0.08435726, 0.09902793, 0.036673605, 0.03601086, 0.0015360117, 0.02483493, 0.05776769, 0.050014257, 0.0050597787, 0.024201453, 0.033237636, 0.04113847, 0.055909157, 0.018021166, 0.03805071, 0.082793534, 0.07463145, 0.075915754, 0.004585743, 0.005493343, 0.07980883, 0.0459612, 0.031596363, 0.018146932, 0.05076003, 0.06686747, 0.017949462, 0.022517025, 0.04839146, 0.0019399524, 0.03187716, 0.043204844, 0.060624838] 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-23T03:07:03.285 LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-23T03:07:03.286 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-23T03:07:03.287 [ Info: neardup> range: 33:48, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.287 [ Info: neardup> range: 49:64, current elements: 17, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.287 [ Info: neardup> range: 65:80, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.287 [ Info: neardup> range: 81:96, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.288 [ Info: neardup> range: 97:100, current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.288 [ Info: neardup> finished current elements: 18, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:03.288 D.map = UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x0000001a, 0x00000039] D.nn = Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 16, 10, 13, 5, 2, 8, 4, 7, 26, 14, 8, 12, 11, 2, 4, 7, 13, 12, 7, 8, 13, 26, 13, 4, 12, 8, 14, 16, 16, 15, 11, 10, 4, 14, 14, 13, 9, 9, 15, 57, 4, 2, 14, 4, 14, 8, 14, 9, 14, 5, 4, 13, 12, 8, 2, 10, 26, 1, 5, 1, 14, 8, 14, 2, 4, 6, 6, 6, 8, 5, 6, 2, 5, 2, 12, 4, 14, 57, 9, 8, 8, 26, 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.031883597, 0.038936675, 0.0035061836, 0.014347672, 0.011046767, 0.04289919, 0.024101257, 0.040704608, 0.008059919, 0.0, 0.028832614, 0.05825144, 0.039335668, 0.039895236, 0.027959049, 0.030343533, 0.0325585, 0.007191241, 0.0017839074, 0.025176167, 0.046527505, 0.06203574, 0.003518641, 0.07515651, 0.00037556887, 0.051909268, 0.017595053, 0.029623926, 0.02058208, 0.03175628, 0.04847735, 0.04988444, 0.08025044, 0.0059262514, 0.019940138, 0.0025119185, 0.021547675, 0.017352879, 0.011740208, 0.060305297, 0.0, 0.047337532, 0.026374936, 0.02431047, 0.026396751, 0.030551076, 0.031933248, 0.010058701, 0.005696535, 0.008264005, 0.014120519, 0.06332421, 0.05961424, 0.026352048, 0.03601086, 0.0015360117, 0.009386718, 0.08868426, 0.050014257, 0.0050597787, 0.024201453, 0.032843947, 0.04113847, 0.035462856, 0.018021166, 0.0100079775, 0.03753215, 0.019878805, 0.025328219, 0.004585743, 0.005493343, 0.010552824, 0.0459612, 0.031596363, 0.018146932, 0.039468765, 0.024822474, 0.014309704, 0.037040114, 0.0317142, 0.0019399524, 0.03187716, 0.043204844, 0.047218382] 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-23T03:07:14.098 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=679 2026-04-23T03:07:14.099 [ Info: neardup> range: 17:32, current elements: 4, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> range: 33:48, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> range: 49:64, current elements: 7, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> range: 65:80, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> range: 81:96, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> range: 97:100, current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 [ Info: neardup> finished current elements: 9, n: 100, ϵ: 0.1, timestamp: 2026-04-23T03:07:14.105 D.map = UInt32[0x00000001, 0x00000002, 0x00000005, 0x00000008, 0x00000014, 0x00000019, 0x0000001a, 0x00000031, 0x00000036] D.nn = Int32[1, 2, 2, 1, 5, 5, 1, 8, 2, 1, 2, 1, 2, 5, 1, 5, 1, 5, 1, 20, 5, 2, 8, 1, 25, 26, 2, 8, 1, 2, 2, 5, 25, 20, 1, 25, 8, 20, 26, 20, 1, 8, 8, 20, 5, 5, 8, 25, 49, 1, 1, 5, 20, 54, 2, 49, 49, 5, 2, 2, 25, 8, 8, 1, 54, 1, 5, 5, 2, 1, 8, 2, 1, 25, 1, 5, 1, 5, 8, 1, 2, 1, 2, 5, 20, 8, 5, 20, 2, 5, 2, 8, 1, 5, 49, 20, 8, 8, 26, 5] D.dist = Float32[0.0, 0.0, 0.033767343, 0.019075632, 0.0, 0.08042967, 0.09390479, 0.0, 0.04521084, 0.046565115, 0.039249003, 0.0032402873, 0.08113366, 0.06000328, 0.05147004, 0.04981363, 0.08439654, 0.05215168, 0.05437094, 0.0, 0.011046767, 0.04289919, 0.024101257, 0.060280204, 0.0, 0.0, 0.043683767, 0.05825144, 0.058333278, 0.04340458, 0.027959049, 0.061356008, 0.022755742, 0.03841847, 0.0068410635, 0.029801905, 0.046527505, 0.07412857, 0.003518641, 0.08571148, 0.017902195, 0.06542611, 0.017595053, 0.05640155, 0.0536561, 0.034968495, 0.06084937, 0.096245825, 0.0, 0.044778228, 0.06880826, 0.05021447, 0.053440094, 0.0, 0.0347414, 0.0028526187, 0.017695606, 0.05552554, 0.026374936, 0.05129361, 0.056283176, 0.041101277, 0.031933248, 0.06345159, 0.0055015087, 0.039088845, 0.014120519, 0.08435726, 0.09902793, 0.036673605, 0.03601086, 0.0015360117, 0.02483493, 0.05776769, 0.050014257, 0.0050597787, 0.024201453, 0.033237636, 0.04113847, 0.055909157, 0.018021166, 0.03805071, 0.082793534, 0.07463145, 0.075915754, 0.004585743, 0.005493343, 0.07980883, 0.0459612, 0.031596363, 0.018146932, 0.05076003, 0.06686747, 0.017949462, 0.022517025, 0.04839146, 0.0019399524, 0.03187716, 0.043204844, 0.060624838] Test Summary: | Pass Total Time neardup small block with filterblocks=false | 3 3 10.8s ExhaustiveSearch allknn: 1.552760 seconds (470.95 k allocations: 28.078 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.09652413427829742, 0.17221471667289734, 0.20773640275001526, 0.24631106108427048, 0.40005621314048767] [ Info: All KNN quartile 3-th: [ Info: 3 => [0.15645717084407806, 0.24185100942850113, 0.278487890958786, 0.3146470785140991, 0.4514223039150238] [ Info: All KNN quartile 4-th: [ Info: 4 => [0.20470796525478363, 0.27995841205120087, 0.3143417686223984, 0.35778093338012695, 0.4844420850276947] [ Info: All KNN quartile 5-th: [ Info: 5 => [0.24398097395896912, 0.31036660075187683, 0.34311388432979584, 0.3864106312394142, 0.5261191129684448] [ Info: All KNN quartile 6-th: [ Info: 6 => [0.2740124464035034, 0.33035603910684586, 0.3567584306001663, 0.4082823023200035, 0.5630154013633728] LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-23T03:07:22.397 LOG n.size quantiles:[0.0, 0.0, 0.0, 0.0, 0.0] SearchGraph allknn: 4.262034 seconds (598.62 k allocations: 37.761 MiB, 99.99% compilation time) recall = 0.9816666666666665 recall > 0.8 = true recall = 0.9816666666666665 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 22.7s LOG add! sp=1 ep=1 n=0 BeamSearch(bsize=4, Δ=1.0, maxvisits=1000000) mem=1GB max-rss=1GB 2026-04-23T03:07:42.510 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.92857146, maxvisits=158) mem=1GB max-rss=1GB 2026-04-23T03:07:51.715 LOG n.size quantiles:[2.0, 2.0, 2.0, 2.0, 2.0] (i, j, d) = (32, 200, -1.1920929f-7) (i, j, d, :parallel) = (32, 700, -1.1920929f-7, :parallel) [ Info: NOTE: the exact method will be faster on small datasets due to the preprocessing step of the approximation method [ Info: ("closestpair computation time", :approx => 16.544195625, :exact => 1.101094525) Test Summary: | Pass Total Time closestpair | 4 4 18.1s Testing SimilaritySearch tests passed Testing completed after 522.62s PkgEval succeeded after 596.88s