libxbps: performance improvements by caching the most accessed paths.
1- We can cache the result of the first xbps_pkgdb_init() when it fails and avoid the malloc/free/access from it. 2- We cache the uname(2) result into a private var in xbps_handle and use it in xbps_pkg_arch_match(). This improves performance by ~5% approx and it's close as it was before introducing the repository index format 1.5.
This commit is contained in:
@@ -281,13 +281,12 @@ xbps_pkg_has_rundeps(prop_dictionary_t pkgd)
|
||||
}
|
||||
|
||||
bool
|
||||
xbps_pkg_arch_match(const char *orig, const char *target)
|
||||
xbps_pkg_arch_match(struct xbps_handle *xhp,
|
||||
const char *orig,
|
||||
const char *target)
|
||||
{
|
||||
struct utsname un;
|
||||
|
||||
if (target == NULL) {
|
||||
uname(&un);
|
||||
if (strcmp(orig, "noarch") && strcmp(orig, un.machine))
|
||||
if (strcmp(orig, "noarch") && strcmp(orig, xhp->un_machine))
|
||||
return false;
|
||||
} else {
|
||||
if (strcmp(orig, "noarch") && strcmp(orig, target))
|
||||
|
Reference in New Issue
Block a user