From 7e4ca84da57f4b91e3719169ac0daab40ff6b3f1 Mon Sep 17 00:00:00 2001 From: David Dworken Date: Sun, 14 Apr 2024 09:57:44 -0700 Subject: [PATCH] Add benchmarking for searching for #202 --- Makefile | 3 +++ client/client_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/Makefile b/Makefile index d78f18b..18923b9 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,9 @@ ftest: ## Run a specific test specified via `make ftest FILTER=TestParam/test go clean -testcache HISHTORY_FILTERED_TEST=1 TZ='America/Los_Angeles' HISHTORY_TEST=1 HISHTORY_SKIP_INIT_IMPORT=1 gotestsum --packages ./... --rerun-fails=0 --format testname -- -p 1 -run "$(FILTER)" -timeout 60m +fbench: ## Run a specific benchmark test specified via `make fbench FILTER=BenchmarkQuery` + HISHTORY_FILTERED_TEST=1 TZ='America/Los_Angeles' HISHTORY_TEST=1 HISHTORY_SKIP_INIT_IMPORT=1 go test -benchmem -bench "$(FILTER)" -timeout 60m ./... + release: ## [ddworken only] Release the latest version on Github # Bump the version expr `cat VERSION` + 1 > VERSION diff --git a/client/client_test.go b/client/client_test.go index 3487904..a1d1dec 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -2977,6 +2977,31 @@ func BenchmarkImport(b *testing.B) { } } +func BenchmarkQuery(b *testing.B) { + b.StopTimer() + // Setup with an install with a lot of entries + tester := zshTester{} + defer testutils.BackupAndRestore(b)() + testutils.ResetLocalState(b) + installHishtory(b, tester, "") + numSyntheticEntries := 100_000 + createSyntheticImportEntries(b, numSyntheticEntries) + ctx := hctx.MakeContext() + numImported, err := lib.ImportHistory(ctx, false, true) + require.NoError(b, err) + require.GreaterOrEqual(b, numImported, numSyntheticEntries) + + // Benchmark it + for n := 0; n < b.N; n++ { + // Benchmarked code: + b.StartTimer() + ctx := hctx.MakeContext() + _, err := lib.Search(ctx, hctx.GetDb(ctx), "echo", 0) + require.NoError(b, err) + b.StopTimer() + } +} + func TestAugmentedIsOfflineError(t *testing.T) { markTestForSharding(t, 12) defer testutils.BackupAndRestore(t)()