-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Memory leak #321
Comments
The above code shows similar behaviour, but the "fix" doesn't change anything. So the above code simply demonstrates a similar behaviour but actually has nothing to do with it. |
Reopening, since not all memory/reference leaks are fixed. Programs still show increasing memory utilisation, though at a much lower level. Most programs still leak 3 or 4 slices per frame to be processed in online mode. If multiple frame sizes are used, these numbers are multiplied accordingly. |
Looks like only Python 2.7 is leaking references, thus I am not sure if we should further investigate this issue. |
|
No, this also happens in offline mode as well. Batch mode shows the same behaviour, it is just easier to monitor in online mode since longer durations can be processed more easily. Somewhere in the code accessing the individual frames of a FramedSignal leaks references to slices. So far I have not been able to track it further down. However I am not sure if this is something we could fix easily since only Python 2.7 shows this behaviour. #331 has some debug code to count the slice references and a fix to one leak (which only happens in online mode). Still, there are 4 references per frame (and frame size) leaking. |
Somewhere in madmom is a memory leak. It revealed while I was working on #316 and testing different settings of the new
BarTracker
. My first guess was thatCLPChromaProcessor
eats memory, since it appears mostly when using this processor. Further investigation revealed thatFramedSignal
seems to be the culprit, or at least parts of it.So far I have not been able to really spot the leak, however
gc.get_objects()
listed countless slices objects, all having a start and stop 2048 apart, thus I suspect that thesignal_frame()
function is the problem. But I can't see anything fishy inside, except the last linereturn signal[start:stop]
.If I perform countless numpy array view operations, I can somehow replicate the behaviour:
I expected that
del x
would free the memory, however this is not the case. Is this behaviour only local to my machine or can someone else replicate this?The text was updated successfully, but these errors were encountered: