diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-01-19 13:43:21 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-01-19 13:43:21 +0100 |
commit | 0b94f7424e16965486a106bb44a252feb12f295e (patch) | |
tree | f785a1d20ce8ae8915e1421ebd4b04e07d1d638d | |
parent | da254858a8e21f0b15b1bd0af6ef27dd8753fb3c (diff) |
Improve readLog performance
benchmark old ns/op new ns/op delta
BenchmarkReadLog-4 42074389 4910733 -88.33%
-rw-r--r-- | sql/sql.go | 2 | ||||
-rw-r--r-- | sql/sql_test.go | 13 |
2 files changed, 15 insertions, 0 deletions
@@ -54,6 +54,8 @@ CREATE TABLE IF NOT EXISTS log_rr_answer ( FOREIGN KEY (rr_answer_id) REFERENCES rr_answer(id) ); +CREATE INDEX IF NOT EXISTS log_rr_answer_log_id ON log_rr_answer(log_id); + CREATE TABLE IF NOT EXISTS cache ( id INTEGER PRIMARY KEY, key INTEGER NOT NULL, diff --git a/sql/sql_test.go b/sql/sql_test.go index 6843d3d..72a4df8 100644 --- a/sql/sql_test.go +++ b/sql/sql_test.go @@ -218,3 +218,16 @@ func TestReadLogStats(t *testing.T) { t.Errorf("readLogStats() = (%+v, _), want (%+v, _)", got, want) } } + +func BenchmarkReadLog(b *testing.B) { + c := testClient() + for i := 0; i < 1000; i++ { + if err := c.writeLog(time.Now(), net.ParseIP("127.0.0.1"), false, 1, "example.com.", "192.0.2.1"); err != nil { + b.Fatal(err) + } + } + b.ResetTimer() + for n := 0; n < b.N; n++ { + c.readLog(1000) + } +} |