How Fast Is Offline Local Document Search? Real Benchmarks

2026-06-22·6 min read
요약: LocalSynapse was measured against a real 93 GiB working drive — 68,877 files, including 21,054 PDFs and 12,000+ Office documents — on a mainstream Intel Core i5-12400 desktop with no discrete GPU. Keyword content search returns in about 1 ms median (p95 425 ms). The full search index adds only 6.8% to disk. On a controlled run, extraction and chunking processed a 5.11 GiB document set at ~3.6 files/sec (~5.4 MB/s) using under 4 GB of RAM. Everything ran 100% offline on the CPU.

Most "local search" demos run against a handful of curated files. That tells you almost nothing about how a tool behaves on the drive you actually have — the one with years of PDFs, version-stamped spreadsheets, and a Downloads folder no one has opened in months. So instead of a synthetic benchmark, we measured LocalSynapse on a real, messy working drive, and on a controlled extraction run, on the same mid-range PC. Here are the numbers, and — just as important — what we didn't measure.

The test machine

These are not server numbers. The hardware is a normal office-grade desktop, deliberately, because that is where LocalSynapse is meant to run.

ComponentSpec
CPUIntel Core i5-12400 (6 cores / 12 threads)
RAM64 GB
GPUIntel UHD 730 integrated — no discrete GPU
StorageSolidigm NVMe SSD
OSWindows 11 Pro (build 26200)
EmbeddingBGE-M3 via ONNX Runtime, running on the CPU

Every figure below was produced on this machine. There is no GPU acceleration in any of these results — so treat the CPU numbers as a floor, not a ceiling.

Dataset 1 — a real 93 GiB working drive

This is the live index: a genuine working drive scanned in normal day-to-day use, not a hand-picked test set. The mix of formats is what makes it credible.

FormatFiles
PDF21,054
Excel (.xlsx/.xls)6,608
Word (.docx/.doc)5,455
PowerPoint (.pptx/.ppt)2,146
HWP (.hwp/.hwpx)492
Email (.msg/.eml)427
Plain text386

The drive also holds thousands of images, archives, and code files — exactly the kind of noise a real machine accumulates. LocalSynapse scans all of it for filename search, and reads inside the document formats for content and semantic search.

Search latency

Keyword (BM25) search is the everyday path, and it is fast even at this scale. Measured across 4,367 real searches against the live index:

Search typeMedian (p50)p95Samples
Keyword content (BM25)~1 ms425 ms4,367

The p95 of 425 ms covers the heaviest queries — broad terms that match across tens of thousands of chunks. The typical query is effectively instant.

Semantic (AI) reranking is a separate, heavier path, and we are deliberately not publishing a headline latency for it yet — see the limitations section for why the existing sample is too small to be fair.

Index footprint

A common worry about "AI search" is that the index will balloon to several times the size of your files. It doesn't. Against the 93 GiB corpus:

Index componentSize% of corpus
Total index (SQLite DB)6.76 GB6.8%
— Semantic vectors2.13 GB2.1%
— Keyword (FTS5) index415 MB0.4%

The entire searchable index — keyword plus half a million AI vectors — costs under 7% of the space your documents already occupy.

Dataset 2 — controlled extraction run

To get clean, repeatable speed and memory numbers, we ran a controlled pass over a fixed 5.11 GiB document set (3,468 files) from empty, twice. This isolates the read-and-extract pipeline — opening each file, pulling its text, and splitting it into chunks.

MetricResult
Files / size3,468 files / 5.11 GiB
Chunks produced109,117
Scan + extract + chunk time~16 minutes (939s and 1,001s across two runs)
Throughput~3.6 files/sec · ~5.4 MB/sec · ~110 chunks/sec
Peak RAM~3.6–3.8 GB
Active acceleratorCPU

Memory peaks came from parsing the largest PDFs and slide decks; the process otherwise sat well under 4 GB. Once extraction finishes, keyword content search is immediately available.

How semantic search builds

Semantic embeddings — the part that lets you search by meaning rather than exact words — are generated by the BGE-M3 model. On a CPU, individual inference is quick (a 50-chunk batch runs in roughly 1–2.5 seconds), but LocalSynapse intentionally meters embedding work as a low-priority background task so it never competes with what you're actively doing on the machine.

The practical consequence: keyword search works within minutes of indexing, and semantic search deepens in the background over time. There is no single "time to fully embed" figure, because embedding is paced to stay out of your way rather than run flat-out — which is also why the half-million vectors on the live drive accumulated gradually rather than in one sitting.

Method & limitations

We would rather tell you what we didn't measure than imply we measured it.

Real drives are messy. We think a benchmark should be too — measured on the kind of machine and the kind of files you actually have, with the gaps stated plainly.


Related Posts

LocalSynapse 무료 체험

파일 내용 검색, 100% 오프라인, 무료

홈으로 이동

관련 글