Thanks to both.  I'll experiment with this.  There's currently a
ticket already marked Positive Review on this interface (#10256) but
since that will have missed the 7.5 release it might make sense to add
to that ticket.  Not sure.

John

On 9 January 2017 at 15:45, David Roe <roed...@gmail.com> wrote:
> Python has a __dealloc__ method, which is called when the object is garbage
> collected. You can find examples by search_src.
>
> On Jan 9, 2017 09:52, "John Cremona" <john.crem...@gmail.com> wrote:
>>
>> In a reply to question 36225 at
>> https://ask.sagemath.org/question/36225/memory-leak-with-modular-symbols/
>> (my reply was deleted by the system so you cannot read it) I offered
>> to try to help by asking here how to do somthign I don't know how to
>> do.
>>
>> When you do
>>
>> sage: E = EllipticCurve('11a1')
>> sage: M = E.modular_symbol()
>>
>> an instance of class ModularSymbolECLIB is created (as defined in
>> sage.schemes.elliptic_curves.ell_modular_symbols) which in turn
>> creates an instance of ECModularSymbol (as defined in sage/libs/eclib)
>> which in turn creates an ainstance of a C++ class in eclib which is a
>> C++ library.  Currently there is no way the memory that uses up can be
>> released.  I know that C++ classes have destructors which get called
>> when the objects go out of scope; presumably there is something
>> similar in python / cython?  What would we need to do to get the
>> destructor called?
>>
>> Currently a loop such as
>>
>> DB = CremonaDatabase()
>> for N in range(1,10000):
>>         Cs = DB.isogeny_classes(N)
>>         for C in Cs:
>>                 E=EllipticCurve(C[0][0])
>>                 phi=E.modular_symbol()
>>
>> uses up more and more memory even though after each run through the
>> innermost loop there is no data left in scope.
>>
>> John
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sage-devel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to sage-devel+unsubscr...@googlegroups.com.
>> To post to this group, send email to sage-devel@googlegroups.com.
>> Visit this group at https://groups.google.com/group/sage-devel.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to