[pacman-dev] [PATCH 0/2] Remove REQUIREDBY usage
Dan McGee
dpmcgee at gmail.com
Tue Nov 13 00:28:33 EST 2007
On Nov 12, 2007 9:24 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> On Nov 12, 2007 8:01 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> > Some quick observations:
> > $ time pacman -Qt > /dev/null (pacman 3, latest GIT release)
> > real 0m0.084s
> > user 0m0.020s
> > sys 0m0.043s
> >
> > $ time ./src/pacman/pacman -Qt > /dev/null (with compute_requiredby switch)
> > real 0m1.893s
> > user 0m1.800s
> > sys 0m0.037s
> >
> > Obviously a slowdown, but is it all that bad in the big scheme of
> > things when corrupted requiredby entries no longer hurt us?
>
> I ran valgrind --tool=callgrind on the above command to see where our
> hotpoint is in the code, and it is quite clear- alpm_splitdeps takes
> almost 70% of the total time. That is wildly inefficient for such a
> small function, and that is after I even did a little optimization to
> it. So if we are looking to focus our energy on anything, it is this
> one function that needs it OR at least figuring out how we could
> better implement it. Perhaps we should split all the deps upon package
> loading instead? Considering I doubt their are 1.3 million dep entries
> in our DB (the amount of times alpm_splitdeps is called), this would
> really help if it is possible.
And continuing the trend of replying to myself, and showing why
optimizing the small little parts of code can make a huge difference:
$ time pacman -Qt > /dev/null
real 0m0.089s
user 0m0.023s
sys 0m0.040s
$ time ./src/pacman/pacman -Qt > /dev/null
real 0m0.377s
user 0m0.277s
sys 0m0.063s
This is a 5x increase in speed by making the change I described above
in the previous email. I'll push a branch to my GIT repo tonight
detailing the changes.
-Dan
More information about the pacman-dev
mailing list