summaryrefslogtreecommitdiff
path: root/doc/todo/git-annex_unused_eats_memory.mdwn
Commit message (Collapse)AuthorAge
* Merge branch 'master' into bloomGravatar Joey Hess2012-03-12
|\ | | | | | | | | Conflicts: doc/todo/git-annex_unused_eats_memory.mdwn
| * note fixedGravatar Joey Hess2012-03-12
| |
* | closeGravatar Joey Hess2012-03-12
|/
* unused: Reduce memory usage significantly.Gravatar Joey Hess2012-03-11
| | | | | | | | | | | | | | | | | Much of the memory bloat turned out to be due to getKeysReferenced containing a mapM, which is strict and buffered the whole list rather than streaming it. The other half of the bloat was due to building a temporary Set in order to call S.difference. While that is more cpu efficient, I switched to successive S.delete, since with it, I can run a whole git annex unused in less than 8 mb of memory. The whole Set of keys with content available is still stored in memory, so running unused in a repo with a whole lot of file content will still use more memory. In a repo containing 6000 files, it needed 40 mb. Note that the status command still uses the bloatful getKeysReferenced.
* updateGravatar Joey Hess2011-11-08
|
* unused --remote: Reduced memory use to 1/4th what was used before.Gravatar Joey Hess2011-08-31
| | | | | | | Using a single strictness annotation, in just the right place. Tried several others, none of which helped and some of which potentially hurt. This is only the second time I've really had to deal with this in a year of using haskell, which is, I suppose not that bad.
* addGravatar Joey Hess2011-04-07