Skip to content

Commit 0251a0a

Browse files
authored
Log more timing data; add option to skip saving (#12)
The option to skip saving the index can be used to benchmark just building an index, when searching is not needed.
1 parent a248d26 commit 0251a0a

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/svsbench/build.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ def _read_args(argv: list[str] | None = None) -> argparse.Namespace:
8787
parser.add_argument(
8888
"--leanvec_dims", help="LeanVec dimensionality", type=int
8989
)
90+
parser.add_argument("--no_save", action="store_true")
9091
return parser.parse_args(argv)
9192

9293

@@ -139,7 +140,8 @@ def main(argv: str | None = None) -> None:
139140
np.save(args.out_dir / (name + ".ingest.npy"), ingest_time)
140141
if args.num_vectors_delete > 0:
141142
np.save(args.out_dir / (name + ".delete"), delete_time)
142-
save(index, args.out_dir, name)
143+
if not args.no_save:
144+
save(index, args.out_dir, name)
143145

144146

145147
def build_dynamic(
@@ -301,6 +303,14 @@ def build_dynamic(
301303
start = time.perf_counter()
302304
index.delete(ids_to_delete)
303305
delete_time[batch_idx + 1] = time.perf_counter() - start
306+
if num_batches:
307+
add_time_mean = np.mean(ingest_time[1:])
308+
add_time_rsd = (
309+
np.std(ingest_time[1:], ddof=min(1, num_batches - 1))
310+
/ add_time_mean
311+
)
312+
logger.info({"add_time": {"mean": add_time_mean, "rsd": add_time_rsd}})
313+
logger.info({"build_and_add_time": np.sum(ingest_time)})
304314

305315
name = "__".join(
306316
(

src/svsbench/search.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,11 @@ def search(
284284
{
285285
"search_results": {
286286
"qps": qps,
287+
"qps_mean": np.mean(qps),
288+
"qps_rsd": np.std(qps, ddof=min(1, num_rep - 1)) / np.mean(qps),
287289
"p95": p95s,
290+
"p95_mean": np.mean(p95s),
291+
"p95_rsd": np.std(p95s, ddof=min(1, num_rep - 1)) / np.mean(p95s),
288292
"search_parameters": {
289293
"search_window_size": index.search_parameters.buffer_config.search_window_size,
290294
"search_buffer_capacity": index.search_parameters.buffer_config.search_buffer_capacity,

0 commit comments

Comments
 (0)