Discussion:
[Numpy-discussion] How to check for memory leaks?
Charles R Harris
2016-02-23 19:36:00 UTC
Permalink
Hi All,

I'm suspecting a possible memory leak in 1.11.x, what is the best way to
check for that?

Chuck
Antoine Pitrou
2016-02-23 19:46:47 UTC
Permalink
On Tue, 23 Feb 2016 12:36:00 -0700
Post by Charles R Harris
Hi All,
I'm suspecting a possible memory leak in 1.11.x, what is the best way to
check for that?
If that is due to a reference leak, you can use sys.getrefcount() or
weakref.ref().

Otherwise you may want to change Numpy to go through PyMem_RawMalloc /
PyMem_RawCalloc / PyMem_RawRealloc / PyMem_RawFree on recent Pythons,
so as to have Numpy-allocated memory accounted by the tracemalloc
module.

(https://github.com/numpy/numpy/pull/5470 may make it more
palatable ;-))

Regards

Antoine.
Sebastian Berg
2016-02-23 21:06:57 UTC
Permalink
Post by Charles R Harris
Hi All,
I'm suspecting a possible memory leak in 1.11.x, what is the best way
to check for that?
Would like to learn better methods, but I tried valgrind with trace
origins and full leak check, just thinking maybe it shows something.
Unfortunately, I got the error below midway, I ran it before
successfully (with only minor obvious leaks due to things like module
wide strings) I think. My guess is, the error does not say much at all,
but I have no clue :) (running without track-origins now, maybe it
helps).

- Sebastian

Error:

VEX temporary storage exhausted.
Pool = TEMP, start 0x38f91668 curr 0x39456190 end 0x394561a7 (size
5000000)

vex: the `impossible' happened:
VEX temporary storage exhausted.
Post by Charles R Harris
Chuck
_______________________________________________
NumPy-Discussion mailing list
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Continue reading on narkive:
Loading...