df285478cb6bf69ccaed0c2a409648cd7fa547b8
[git-annex.git] /
1 [[!comment format=mdwn
2  username="joey"
3  subject="""comment 2"""
4  date="2017-01-31T20:24:04Z"
5  content="""
6 The heap profile has multiple spikes (so not an accumulating memory leak).
7 The diff parsing code is indeed what's using so much memory. Looks like
8 data is failing to stream through that code and instead the whole
9 diff output gets buffered.
10
11 Aha.. Git.DiffTree.parseDiffRaw used to return a list, but changed
12 in [[!commit 8d124beba8]]
13 to a Maybe list in order to avoid being a partial function. But 
14 that change destroyed laziness, since the whole input has to be parsed
15 in order to determine if Nothing should be returned.
16
17 However, fixing that only eliminated part of the spike. There's something
18 else keeping data from streaming.
19 """]]