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 -

_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to