Try and find an exact match via pkgcache before iterating the entire localdb. Gives a noticeable speed up for exact matches e.g. `pacman -T zlib` --- Do note this fails for versioned exact matches. "zlib>1" will not take the faster route because alpm_db_get_pkgfromcache() does not work for versioned deps. I do have a solution for this in an alternative patch which adds alpm_db_find_local_satisfier() "62 insertions(+), 7 deletions(-)" But is that worth it just for a speed up on -T? Nowhere else really makes extensive use of searching the localdb. --- src/pacman/deptest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c index 597eee42..76bf223e 100644 --- a/src/pacman/deptest.c +++ b/src/pacman/deptest.c @@ -32,11 +32,13 @@ int pacman_deptest(alpm_list_t *targets) alpm_list_t *i; alpm_list_t *deps = NULL; alpm_db_t *localdb = alpm_get_localdb(config->handle); + alpm_list_t *pkgcache = alpm_db_get_pkgcache(localdb); for(i = targets; i; i = alpm_list_next(i)) { char *target = i->data; - if(!alpm_find_satisfier(alpm_db_get_pkgcache(localdb), target)) { + if(!alpm_db_get_pkg(localdb, target) && + !alpm_find_satisfier(pkgcache, target)) { deps = alpm_list_add(deps, target); } } -- 2.23.0