[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Nils Bruin
On Aug 15, 5:48 am, Simon King wrote: > Anyway, I'd be glad if someone could review #715, #11521, #12313 and > #13370... I'm trying! In the process, I think I might have found a useful debugtool. In sage.structure.coerce_dict, I have added: cpdef refcache(): """ for debug reasons only! A

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Simon King
On 2012-08-15, Simon King wrote: > I have created #13370... ... which now needs review. It fixes one leak that has not be fixed in #715, #12215, #11521 and #12313, and it improves some benchmark for computing echelon forms (which should be interesting, given the original reason for this thread).

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Simon King
Hi! I have created #13370. My plan is to remove all calls to is_Field(R) and replace them by "R in Fields()". This mainly concerns sage/schemes. Using is_Field will be deprecated. A non-deprecated version will be called _is_Field, and will (still) be used in Fields().__contains__. The important po

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Simon King
PS: On 2012-08-15, Simon King wrote: > Alternatively, one could try to use the category framework in a nasty > way: If "R in Fields()" returns True, then R.category() is refined to a > sub-category of Fields(). In that way, is_Field(R) would only be called > in the first instance of "R in Fields(

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Simon King
Hi Nils, On 2012-08-15, Nils Bruin wrote: > I think I have identified this mysterious object. I think it's > > sage/rings/ring.pyx:1926 > > cdef dict _is_Field_cache = {} > > as introduced in > > http://trac.sagemath.org/sage_trac/ticket/11900 > > with author listed Simon King :-) Oops. > DONT

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Nils Bruin
> #The mysterious object is now L[0] and the next line shows that it > doesn't really have a reference (the only one being the list L which > we have just created) I think I have identified this mysterious object. I think it's sage/rings/ring.pyx:1926 cdef dict _is_Field_cache = {} as introduce

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-15 Thread Simon King
Hi Nils, On 2012-08-15, Nils Bruin wrote: > Interesting data point: The echelonization isn't important. It's the > creation of a non-square matrix space that seems to cement the > integermodring in memory. That is interesting indeed (and surprising to me, because I'd rather expect that the categ

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Nils Bruin
Interesting data point: The echelonization isn't important. It's the creation of a non-square matrix space that seems to cement the integermodring in memory. This has the same effect as before (you can get the object L[0] as above) import gc, collections import sage.matrix.matrix_space as matrix_s

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Simon King
Hi Nils, On 2012-08-15, Nils Bruin wrote: > Continuing ... I think the patches made some difference. Previously, I > saw a bunch of MatrixSpaces on the heap and they seem to have > disappeared. That's good! > However, there are a whole bunch of IntegerModRings still around. Like this? sage:

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Nils Bruin
Continuing ... I think the patches made some difference. Previously, I saw a bunch of MatrixSpaces on the heap and they seem to have disappeared. However, there are a whole bunch of IntegerModRings still around. A very conspicuous structure is an ordinary dictionary that has IntegerModRings as keys

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Nils Bruin
On Aug 14, 2:07 am, Simon King wrote: > #12215, #11521 and #12313 need review, #715 has a positive review but > depends on #11521. Do these patches solve the memory leak you observed? No they don't! I'm surprised. There is apparently yet something else that keeps these objects alive. I've tried

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Simon King
Hi Nils, On 2012-08-14, Nils Bruin wrote: > On Aug 14, 2:07 am, Simon King wrote: > >> #12215, #11521 and #12313 need review, #715 has a positive review but >> depends on #11521. Do these patches solve the memory leak you observed? > > I wasn't able to merge 715 on 5.3beta2. We should probably a

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Nils Bruin
On Aug 14, 2:07 am, Simon King wrote: > #12215, #11521 and #12313 need review, #715 has a positive review but > depends on #11521. Do these patches solve the memory leak you observed? I wasn't able to merge 715 on 5.3beta2. We should probably agree on the version on which this should go. Are you

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-14 Thread Simon King
Hi Nils, On 2012-08-14, Nils Bruin wrote: > It looks there is quite some work on this: > > http://trac.sagemath.org/sage_trac/ticket/12215 > http://trac.sagemath.org/sage_trac/ticket/11521 > http://trac.sagemath.org/sage_trac/ticket/715 > http://trac.sagemath.org/sage_trac/ticket/12313 > > Let me

[sage-devel] Re: Memory leak for matrix operations over QQ

2012-08-13 Thread Nils Bruin
It looks there is quite some work on this: http://trac.sagemath.org/sage_trac/ticket/12215 http://trac.sagemath.org/sage_trac/ticket/11521 http://trac.sagemath.org/sage_trac/ticket/715 http://trac.sagemath.org/sage_trac/ticket/12313 Let me know if there is something I can help with to move this a