From 028791000ca77b4bc4740332d8dc7d3f512a86f6 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 12 Dec 2017 17:02:46 +0000 Subject: [PATCH] Log how long it takes to open the database Signed-off-by: Michael Tremer --- src/database.c | 33 +++++++++++++++++++++++++-------- src/database.h | 1 - 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/database.c b/src/database.c index e5460da..1512fd2 100644 --- a/src/database.c +++ b/src/database.c @@ -156,6 +156,27 @@ static FILE* copy_file_pointer(FILE* f) { return fdopen(fd, "r"); } +static int loc_database_read(struct loc_database* db) { + clock_t start = clock(); + + // Read magic bytes + int r = loc_database_read_magic(db); + if (r) + return r; + + // Read the header + r = loc_database_read_header(db); + if (r) + return r; + + clock_t end = clock(); + + INFO(db->ctx, "Opened database in %.8fs\n", + (double)(end - start) / CLOCKS_PER_SEC); + + return 0; +} + LOC_EXPORT int loc_database_new(struct loc_ctx* ctx, struct loc_database** database, FILE* f) { struct loc_database* db = calloc(1, sizeof(*db)); if (!db) @@ -173,15 +194,11 @@ LOC_EXPORT int loc_database_new(struct loc_ctx* ctx, struct loc_database** datab if (!db->file) goto FAIL; - // Read magic bytes - int r = loc_database_read_magic(db); - if (r) - return r; - - // Read the header - r = loc_database_read_header(db); - if (r) + int r = loc_database_read(db); + if (r) { + loc_database_unref(db); return r; + } *database = db; diff --git a/src/database.h b/src/database.h index bec2f41..38dc4ef 100644 --- a/src/database.h +++ b/src/database.h @@ -36,7 +36,6 @@ const char* loc_database_get_description(struct loc_database* db); int loc_database_get_as(struct loc_database* db, struct loc_as** as, uint32_t number); size_t loc_database_count_as(struct loc_database* db); -int loc_database_read(struct loc_database* db, FILE* f); int loc_database_write(struct loc_database* db, FILE* f); #endif -- 2.39.2