[Rpm-maint] Patch: faster dependency solving
Panu Matilainen
pmatilai at laiskiainen.org
Tue Aug 12 13:04:23 UTC 2014
On 08/06/2014 03:01 PM, Michael Schroeder wrote:
>
> Hi Panu et al,
Hi, back from vacation...
>
> attached are two patches to make dependency solving faster/more correct.
> The first one switches the "installed file conflicts" cache from
> complete file names to base names, to make fingerprinting work for them.
>
> The second one is the more interesing one, it adds a "installed file
> requires" cache. This cache is only created at the start of
> rpmtsCheck(), so it is most useful for big transactions. It is used
> to prune the filelist of the erased packages.
>
> Some numbers from my system:
>
> $ rpm -ql ddd | wc -l
> 51
> $ rpm -ql kernel-source | wc -l
> 31128
>
> With cold caches:
> - erase ddd
> complete dependency check: 27ms
> - erase ddd with requires cache
> cache creation: 16ms, complete dependency check: 30ms
>
> - erase kernel-source
> complete dependency check: 72ms
> - erase kernel-source with requires cache
> cache creation: 16ms, complete dependency check: 33ms
>
> With hot caches:
> - erase ddd
> complete dependency check: 0ms
> - erase ddd with requires cache
> cache creation: 2ms, complete dependency check: 2ms
>
> - erase kernel-source
> complete dependency check: 44ms
> - erase kernel-source with requires cache
> cache creation: 2ms, complete dependency check: 8ms
>
> So it's a very little bit slower for small packages, but helps a
> lot for big packages or big transactions.
Cool. Both applied, thanks!
- Panu -
More information about the Rpm-maint
mailing list