On Thu, Mar 18, 2021 at 6:56 AM Maarten Derickx <m.derickx.stud...@gmail.com> wrote:
> Hi All, > > tldr: the bottom of this post contains example code of which I would like > the results on some other systems. > > I recently encountered a memory leak in the relatively innocently looking > code: > > d = 27 > M = 109 > for i in range(10000): > for a in srange(M): > for r in srange(d): > tmp = r*a > > However it doesn't seem to be on all platforms that sage supports. For > example on cocalc (ubuntu 20.04) one gets: > > ~$ sage > ┌────────────────────────────────────────────────────────────────────┐ > │ SageMath version 9.2, Release Date: 2020-10-24 │ > │ Create a "Sage Worksheet" file for the notebook interface. │ > │ Enhanced for CoCalc. │ > │ Using Python 3.8.5. Type "help()" for help. │ > └────────────────────────────────────────────────────────────────────┘ > sage: import gc > ....: gc.collect() > ....: mem = get_memory_usage() > ....: d = 27 > ....: M = 109 > ....: for i in range(10000): > ....: for a in srange(M): > ....: for r in srange(1,d): > ....: tmp = r*a > ....: gc.collect() > ....: print("memory usage 10k:", get_memory_usage(mem)) > ....: mem = get_memory_usage() > ....: for i in range(20000): > ....: for a in srange(M): > ....: for r in srange(1,d): > ....: tmp = r*a > ....: gc.collect() > ....: print("memory usage 20k:", get_memory_usage(mem)) > ....: > > 434 > 0 > memory usage 10k: 9.15234375 > 0 > memory usage 20k: 21.3984375 > > > showing clear indication of a memory leak. While on my own laptop (OS X > 10.13.6) I get: > > > > ~ mderickx$ sage > ┌────────────────────────────────────────────────────────────────────┐ > │ SageMath version 9.2, Release Date: 2020-10-24 │ > │ Using Python 3.8.5. Type "help()" for help. │ > └────────────────────────────────────────────────────────────────────┘ > sage: import gc > ....: gc.collect() > ....: mem = get_memory_usage() > ....: d = 27 > ....: M = 109 > ....: for i in range(10000): > ....: for a in srange(M): > ....: for r in srange(1,d): > ....: tmp = r*a > ....: gc.collect() > ....: print("memory usage 10k:", get_memory_usage(mem)) > ....: mem = get_memory_usage() > ....: for i in range(20000): > ....: for a in srange(M): > ....: for r in srange(1,d): > ....: tmp = r*a > ....: gc.collect() > ....: print("memory usage 20k:", get_memory_usage(mem)) > ....: > 278 > 0 > memory usage 10k: 0.0 > 0 > memory usage 20k: 0.0 > > > so here the memory leak does not occur. However I don't have any other > systems to which I have access to. So I was wondering if people could > execute the code below on some other systems and report back here to see > where the leaking is actually occurring. Since I do not have access to a > plain vanilla sage install on ubuntu, *I am especially interested if on > ubuntu the non cocalc enhanced version of sage also produces a memory leak > for the following code:* > > import gc > gc.collect() > mem = get_memory_usage() > d = 27 > M = 109 > for i in range(10000): > for a in srange(M): > for r in srange(1,d): > tmp = r*a > gc.collect() > print("memory usage 10k:", get_memory_usage(mem)) > mem = get_memory_usage() > for i in range(20000): > for a in srange(M): > for r in srange(1,d): > tmp = r*a > gc.collect() > print("memory usage 20k:", get_memory_usage(mem)) > > This is in sage 9.1.rc5 running on ubuntu 20.4 on a dell inspiron laptop. It's an old version of sage but I hope it helps: sage: gc.collect() ....: mem = get_memory_usage() ....: d = 27 ....: M = 109 ....: for i in range(10000): ....: for a in srange(M): ....: for r in srange(1,d): ....: tmp = r*a ....: gc.collect() ....: print("memory usage 10k:", get_memory_usage(mem)) ....: mem = get_memory_usage() ....: for i in range(20000): ....: for a in srange(M): ....: for r in srange(1,d): ....: tmp = r*a ....: gc.collect() ....: print("memory usage 20k:", get_memory_usage(mem)) ....: 176 0 memory usage 10k: 10.0546875 0 memory usage 20k: 21.3984375 > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sage-devel/5882460b-842c-49c4-b33b-fae1c7986db9n%40googlegroups.com > <https://groups.google.com/d/msgid/sage-devel/5882460b-842c-49c4-b33b-fae1c7986db9n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAEQuuAWGxqRL6QwSzXGzT5MbdjYPWwYZY%3D5%3D3O-nZozZWt7e5Q%40mail.gmail.com.