On Fri, Feb 01, 2013 at 01:44:53PM -0800, Bart Smaalders wrote:
> On 02/01/13 11:25, Edward Pilatowicz wrote:
> >hey all,
> >
> >i have a small bugfix (9 lines of actual code) that speeds up noop pkg
> >operations:
> >
> > https://cr.opensolaris.org/action/browse/pkg/edp/pkg.lisyncfast/webrev/
> > 16269426 noop pkg operations are slow
> >
> >i benchmarked the fix on my desktop with the following command:
> >
> > ptime pkg install --no-refresh -n osnet-incorporation
> >
> >without the fix execution time was 1 min and 24 sec, with the fix
> >execution time was 12 seconds.
> >
> >more details about the analysis/fix are in the bug report.
> >
> >ed
>
> Hi Ed -
>
> Nice find...
>
> imageplan.py:
>
>
> line 2209: nit: s/# if/# If
> line 2213: nit: s/todo/to do
>
> line 2219 - 2221:
>
> Seems like return defaultdict(set, self.pd._cfg_mediators)
>
> would achieve the same thing, no?
>
done, done, and done.
> if you wish, you could indent 2983 through 3008 one level right,
> but w/ our indent level that's gonna cause problems.
>
yeah. the indentation is the reason i didn't do that. (also, the
variable is uniquely enough named that a simple search allows you to
quickly verify it's being used correctly.)
that said, i'm still not crazy about the fact that i'm now
declaring/initializing a variable in a parallel scope to where it's
being used. hence, i've added a variable declaration to the parent
scope of where it's being referenced. ie:
---8<---
+ l_actions = {}
if self.pd.update_actions:
+ # iterating over actions is slow, so don't do it
+ # unless we have to.
l_actions = self.get_actions("hardlink",
self.hardlink_keyfunc)
for a in self.pd.update_actions:
... l_actions is used here ...
---8<---
the webrev has been updated.
thanks for the review,
ed
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss