[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: rev 1077 - trunk/subversion/include trunk/subversion/libsvn_fs trunk/subversion/tests/libsvn_delta trunk/subversion/libsvn_delta trunk/subversion/libsvn_ra_dav

From: Greg Stein <gstein_at_lyra.org>
Date: 2002-01-27 23:56:26 CET

On Sun, Jan 27, 2002 at 03:33:13PM +0100, Branko �ibej wrote:
> gstein@tigris.org wrote:
>...
> >NOTE: this change may also dramatically fix our memory consumption. I
> >found that the vdelta hash tables were allocated in the stream's pool,
> >rather than for each window. I'm not positive what the resulting peak
> >was, but it appeared to be on the order of a pointer for each byte in
> >the source *and* target files that were being diff'd. (e.g. compare
>
> Ouch, ouch!

Yah, really. And I further realized that if svn_txstream_free() wasn't
called, then all of that data would stick around until the (parent) pool was
cleared or destroyed.

I think Yoshiki's recent change to call close_directory() is doing exactly
that: throwing away all of the txstreams and those huge hash tables. Without
that close_directory() and its associated pool destruction, we wouldn't
throw away any of the streams and, therefore, none of the tables. In other
words, an import would use memory on the order of 4x the size of all files
imported. Eek!

While the close_directory() is still needed, I think this change
independently helps with managing the peak memory.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:00 2006

This is an archived mail posted to the Subversion Dev mailing list.