From bedf65e72ee87e950668d4ed542f05526f0735db Mon Sep 17 00:00:00 2001 From: Brian Koropoff Date: Wed, 8 Nov 2017 18:11:05 -0800 Subject: [PATCH] scanner: prioritize databases with recent matches This should improve performance when scanning many files in a row that all match against the same database, which is the expectation. --- tasks/task_database.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tasks/task_database.c b/tasks/task_database.c index cef5171480..3f3b158bc7 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -868,6 +868,17 @@ static int database_info_list_iterate_found_match( free(db_playlist_base_str); free(db_crc); + /* Move database to start since we are likely to match against it + again */ + if (db_state->list_index != 0) + { + struct string_list_elem entry = db_state->list->elems[db_state->list_index]; + memmove(&db_state->list->elems[1], + &db_state->list->elems[0], + sizeof(entry) * db_state->list_index); + db_state->list->elems[0] = entry; + } + return 0; }