On Mon, 2007-12-10 at 14:12 -0500, James Antill wrote:
> A couple of questions about sqlite functions and usage:
> 
> 1. Does anyone know why returnPackages() re-runs the _excluded() method
> on cached content? AFAICS we just redo excluding for all pkgs for
> nothing.
> 

I think it is b/c we can update the exclude list whenever and from
wherever. It's not just a one time event, necessarily.


> 2. AFAICS simplePkgList would be better off written like:
> 
>     def simplePkgList(self):
>         """returns a list of pkg tuples (n, a, e, v, r) from the sack"""
> 
>         simplelist = []
>         for pkg in self.returnPackages():
>                 simplelist.append((pkg.name, pkg.arch, pkg.epoch, 
> pkg.version, pkg.release))
>         return simplelist
> 
> ...this saves about half a second (20-25%) for pretty much all the
> commands, as the above loop is instant in comparison to the executeSQL()
> version[1].

is that before or after the pkglist has been made?



> 3. Why aren't we using generators more, I'm not really sure how to
> measure the memory requirements for the above simplePkgList() but given
> pretty much all usage is "for pkgtup in simplePkgList():" it seems
> mostly overhead. This isn't the only case either ... is it a back
> compat. issue?

In some cases it's as simple as because len(somegenerator) doesn't work
and that's nice to have.


> [1] The main Fedora repo. is the main problem here, due to all the
> items ... and given how little that changes I'm almost tempted to try
> putting another layer of caching in there just for that, almost.

The smarter move in fedora would be to set the metadata timeout for the
primary repository to something much higher so it is checked for much
less often. Since it doesn't change much (if ever) setting it to a 2 day
value probably wouldn't hurt anyone.

-sv


_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to