On Mon, 2013-05-20 at 11:09 -0400, Boris Kolpackov wrote:
> > This is because in the current algorithm, every single time we do an
> > implicit rule search and compute possible target and dependency names
> > they are all added to the string cache, even if they are deemed to be
> > useless and not needed because that implicit rule is not chosen.  In
> > cases where there are lots of futile implicit rule searches the string
> > cache gets bloated with these useless strings.
> 
> Seeing that you haven't fixed it for 4.0, I assume there is no obvious
> or easy solution ;-).

I've poked at it a few times for just a couple of minutes but nothing
trivial occurred to me.  I was hoping you'd look at it :-p :-).

I don't think it's SO difficult to fix but it can be fiddly--this entire
area is a bit fiddly.

> I care a lot less about memory than about speed and I believe it is
> the same for most other users these days. So maybe we should try to
> tune the hash (i.e., the number of buckets) so that lookup doesn't
> suffer too much?

The complaint I got was that GNU make 3.82 was using 100's of MB of RAM
more than it used to and this was the problem, not the lookup time.  I'm
not really jazzed about adding a workaround like this; the strcache is
intended only for truly static strings that should exist for the
lifetime of the process.  It shouldn't be abused that way IMO.


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to