feat: Enhance BinaryANNIndex with vectorized search and performance benchmarking

This commit is contained in:
catlog22
2026-01-02 11:49:54 +08:00
parent da68ba0b82
commit 9129c981a4
4 changed files with 479 additions and 140 deletions

View File

@@ -1,30 +1,30 @@
{
"timestamp": "2026-01-02 11:22:34",
"timestamp": "2026-01-02 11:48:33",
"summaries": {
"binary": {
"strategy": "binary",
"total_queries": 15,
"successful_queries": 15,
"avg_latency_ms": 850.328753333209,
"min_latency_ms": 750.9617999967304,
"max_latency_ms": 1015.733200001705,
"p50_latency_ms": 847.9711999971187,
"p95_latency_ms": 976.768470002571,
"p99_latency_ms": 1007.9402540018782,
"avg_results": 0,
"avg_latency_ms": 1133.4008666667312,
"min_latency_ms": 959.5361000028788,
"max_latency_ms": 1330.8978999993997,
"p50_latency_ms": 1125.8439999946859,
"p95_latency_ms": 1330.0081999987015,
"p99_latency_ms": 1330.71995999926,
"avg_results": 10,
"errors": []
},
"hybrid": {
"strategy": "hybrid",
"total_queries": 15,
"successful_queries": 15,
"avg_latency_ms": 821.3745733330143,
"min_latency_ms": 720.5589000004693,
"max_latency_ms": 943.0299999949057,
"p50_latency_ms": 819.5875000019441,
"p95_latency_ms": 916.3381599981221,
"p99_latency_ms": 937.691631995549,
"avg_results": 0,
"avg_latency_ms": 1111.1401133336283,
"min_latency_ms": 857.0021999985329,
"max_latency_ms": 1278.8890000010724,
"p50_latency_ms": 1130.696000000171,
"p95_latency_ms": 1254.2417899981956,
"p99_latency_ms": 1273.959558000497,
"avg_results": 10,
"errors": []
}
},
@@ -33,121 +33,121 @@
{
"strategy": "binary",
"query": "def search",
"latency_ms": 862.7266999974381,
"num_results": 0,
"top_result": null,
"latency_ms": 1044.525999997859,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py:0",
"error": null
},
{
"strategy": "binary",
"query": "class Engine",
"latency_ms": 773.8472999990336,
"num_results": 0,
"top_result": null,
"latency_ms": 1052.5979999947594,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\parsers\\factory.py:0",
"error": null
},
{
"strategy": "binary",
"query": "import numpy",
"latency_ms": 858.1023000006098,
"num_results": 0,
"top_result": null,
"latency_ms": 1217.217100005655,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\__main__.py:0",
"error": null
},
{
"strategy": "binary",
"query": "async def",
"latency_ms": 877.2815999982413,
"num_results": 0,
"top_result": null,
"latency_ms": 1276.9802000038908,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\reranker\\api_reranker.py:0",
"error": null
},
{
"strategy": "binary",
"query": "raise ValueError",
"latency_ms": 824.3320999972639,
"num_results": 0,
"top_result": null,
"latency_ms": 1005.9053000004496,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py:0",
"error": null
},
{
"strategy": "binary",
"query": "how to parse json",
"latency_ms": 948.0362000031164,
"num_results": 0,
"top_result": null,
"latency_ms": 1330.8978999993997,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py:0",
"error": null
},
{
"strategy": "binary",
"query": "database connection",
"latency_ms": 789.3126000053599,
"num_results": 0,
"top_result": null,
"latency_ms": 1041.6685000018333,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\indexing\\symbol_extractor.py:0",
"error": null
},
{
"strategy": "binary",
"query": "error handling",
"latency_ms": 960.0693000029423,
"num_results": 0,
"top_result": null,
"latency_ms": 959.5361000028788,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\storage\\migrations\\migration_004_dual_fts.py:0",
"error": null
},
{
"strategy": "binary",
"query": "authentication logic",
"latency_ms": 757.247900000948,
"num_results": 0,
"top_result": null,
"latency_ms": 1060.9395999999833,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\search\\query_parser.py:0",
"error": null
},
{
"strategy": "binary",
"query": "file read write",
"latency_ms": 750.9617999967304,
"num_results": 0,
"top_result": null,
"latency_ms": 971.8680000005406,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\watcher\\incremental_indexer.py:0",
"error": null
},
{
"strategy": "binary",
"query": "embedding vector",
"latency_ms": 871.1426000008942,
"num_results": 0,
"top_result": null,
"latency_ms": 1135.879900000873,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\embedder.py:0",
"error": null
},
{
"strategy": "binary",
"query": "cosine similarity",
"latency_ms": 817.1380999992834,
"num_results": 0,
"top_result": null,
"latency_ms": 1188.1732000038028,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py:0",
"error": null
},
{
"strategy": "binary",
"query": "binary quantization",
"latency_ms": 1015.733200001705,
"num_results": 0,
"top_result": null,
"latency_ms": 1259.3522999959532,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py:0",
"error": null
},
{
"strategy": "binary",
"query": "hamming distance",
"latency_ms": 847.9711999971187,
"num_results": 0,
"top_result": null,
"latency_ms": 1329.6268999984022,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\ann_index.py:0",
"error": null
},
{
"strategy": "binary",
"query": "reranking",
"latency_ms": 801.028399997449,
"num_results": 0,
"top_result": null,
"latency_ms": 1125.8439999946859,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py:0",
"error": null
}
],
@@ -155,121 +155,121 @@
{
"strategy": "hybrid",
"query": "def search",
"latency_ms": 720.5589000004693,
"num_results": 0,
"top_result": null,
"latency_ms": 1117.0937999995658,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "class Engine",
"latency_ms": 792.9914000051212,
"num_results": 0,
"top_result": null,
"latency_ms": 1039.3984000038472,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\parsers\\factory.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "import numpy",
"latency_ms": 943.0299999949057,
"num_results": 0,
"top_result": null,
"latency_ms": 1144.7916999968584,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\__main__.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "async def",
"latency_ms": 819.5875000019441,
"num_results": 0,
"top_result": null,
"latency_ms": 857.0021999985329,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\reranker\\api_reranker.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "raise ValueError",
"latency_ms": 835.5114000005415,
"num_results": 0,
"top_result": null,
"latency_ms": 957.5578000003588,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "how to parse json",
"latency_ms": 867.8118999960134,
"num_results": 0,
"top_result": null,
"latency_ms": 1216.5708000029554,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "database connection",
"latency_ms": 824.6361999990768,
"num_results": 0,
"top_result": null,
"latency_ms": 1154.8929000055068,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\indexing\\symbol_extractor.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "error handling",
"latency_ms": 742.638600000646,
"num_results": 0,
"top_result": null,
"latency_ms": 1130.696000000171,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\storage\\migrations\\migration_004_dual_fts.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "authentication logic",
"latency_ms": 840.4286999939359,
"num_results": 0,
"top_result": null,
"latency_ms": 1112.8943000003346,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\search\\query_parser.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "file read write",
"latency_ms": 810.9049000049708,
"num_results": 0,
"top_result": null,
"latency_ms": 1172.5986000019475,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\watcher\\incremental_indexer.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "embedding vector",
"latency_ms": 876.5335000061896,
"num_results": 0,
"top_result": null,
"latency_ms": 1278.8890000010724,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\embedder.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "cosine similarity",
"latency_ms": 797.3090999948909,
"num_results": 0,
"top_result": null,
"latency_ms": 1024.2393000007723,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "binary quantization",
"latency_ms": 767.9803999999422,
"num_results": 0,
"top_result": null,
"latency_ms": 1243.6786999969627,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "hamming distance",
"latency_ms": 775.7972999970661,
"num_results": 0,
"top_result": null,
"latency_ms": 1081.3100999948801,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\semantic\\ann_index.py:0",
"error": null
},
{
"strategy": "hybrid",
"query": "reranking",
"latency_ms": 904.8987999995006,
"num_results": 0,
"top_result": null,
"latency_ms": 1135.4881000006571,
"num_results": 10,
"top_result": "D:\\Claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py:0",
"error": null
}
]