[darcs-users] Developer machine spec for Linux kernel w/ darcs

Tim O'Callaghan tim.ocallaghan at gmail.com
Tue Nov 30 13:38:00 UTC 2004


> > What kind of state
> > information is darcs keeping that it needs over 750 meg of ram?
> 
> It's storing the contents of those files, plus the locations of the
> beginning and ending of every line in those files in the form of linked
> lists, which probably accounts for most of the rest of the memory.
> 

Why does it need to store the file contents? line endings i can
understand, but contents?

> The antimemoize option allows it to drop (and if necesary recompute) the
> line breaks, but I haven't worked out whether there might be a case where
> darcs still holds everything in memory at once (although there shouldn't
> be, it's just hard to track these things down).
> 
have you had any luck with memory profiling?
http://www.haskell.org/ghc/docs/6.2/html/users_guide/prof-heap.html

> Darcs is often quite swap-friendly, so if your machine is dying, then
> adding more swap is quite likely a sufficient fix.  Certainly darcs'
> working set is usually less than one half or one third of its total
> memory.
> 
> > Sorry for the rant, but my questions still stand.:
> > If this is a known problem, where is the problem?
> > What kind of state information does darcs need to keep that it eats memory.
> 
> The problem is that darcs is (most likely) creating a single patch that
> creates the entire source tree, so that patch must be parsed and held in
> memory.  (Or when recording, that patch must be created, and the
> information to create it must be held in memory.)
> 

Argh :( 
Is there some way of turning off the mega-patch option? i mean it just
will not scale well working like that.

Tim.




More information about the darcs-users mailing list