[PATCH 1/1] Improve performance of package list expansion.

Dan Nicholson nicholson at endlessm.com
Fri Jul 8 23:18:59 UTC 2016


That looks like a nice fix. I guess I only ever tested this with a small
set of packages. However, I think I'd like it reworked a bit. Since
there are only 2 callers, I'd prefer to have them create the hash table
and pass it to recursive_fill_list. Then you also don't need to create 2
versions of the static helper function. I also don't see a great reason
to change the function name, but I guess I don't feel that strongly
about that.

Thanks,
Dan

On Sun, 2016-06-19 at 12:57 +0000, Matthew Hanna (BLOOMBERG/ 731 LEX)
wrote:
> Thanks for the quick reply.  Yes, I forgot to attach it.  Should be
> attached now.
> 
> Matthew
> 
> From: nicholson at endlessm.com At: Jun 18 2016 10:19:35
> To: MATTHEW HANNA (BLOOMBERG/ 731 LEX)
> Cc: pkg-config at lists.freedesktop.org
> Subject: Re: [PATCH 1/1] Improve performance of package list
> expansion.
> Hi Matthew,
> I don't see the patch. Did you forget to attach it?
> Dan
> On Jun 18, 2016 6:31 AM, "Matthew Hanna (BLOOMBERG/ 731 LEX)" <mhanna2
> 1 at bloomberg.net> wrote:
> > In practice, for library sets with a high degree of dependency,
> > iteration over the tree with revisiting results in significant slow
> > down at best and pkg-config failure due to memory exhaustion at
> > worst.  This patch replaces the 'in_requires_chain' flag that halted
> > circular dependencies with a hash table that marks visited package
> > nodes.  The resulting algorithm is equivalent to a topological
> > sort.  Although a boolean flag on each node could be used to
> > implement the algorithm, resetting the flag to false can only be
> > done after the algorithm is complete, creating a bit of extra
> > bookkeeping.  Instead, I chose to use a new hash table to record the
> > visits, reducing the bookkeeping to a call to
> > 'g_hash_table_destroy'.
> > 
> > _______________________________________________
> > pkg-config mailing list
> > pkg-config at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/pkg-config
> > 
> _______________________________________________
> pkg-config mailing list
> pkg-config at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pkg-config
> _______________________________________________
> pkg-config mailing list
> pkg-config at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pkg-config


More information about the pkg-config mailing list