jplab

2014-06-16 14:47:18 UTC

Hey Sage-devel!

I've been experiencing memory issues dealing with Polyhedron objects for a

while now... Perhaps it is time to look if something could be done.

Here is a simple code reproducing the (what I believe to be a) memory leak.

First, I use the garbage collector to force the cleaning of memory and then

look if the python command grows in memory in a "top".

sage: while True:

P=Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]])

eq=P.equations()

del P, eq

gc.collect()

....:

63

31

31

31

31

...

It constantly collects garbage, which is to be expected, and on the long

run, the python command does not increase in memory usage. While, on the

contrary:

sage: while True:

....: P=Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]])

....: fv=P.f_vector()

....: del P, fv

....: gc.collect()

....:

0

0

0

...

Which not to be expected I guess. Then, when one waits enough, one sees in

the "top" that the memory of python increases steadily... This is bad!

I have observed the same behavior with the following functions:

adjacency_matrix

f_vector

face_lattice

facet_adjacency_matrix

facial_adjacencies

graph

is_simple

vertex_adjacencies (although deprecated, also in the new method to produce

the output)

vertex_adjacency_matrix

vertex_graph

Someone has an idea?

I've been experiencing memory issues dealing with Polyhedron objects for a

while now... Perhaps it is time to look if something could be done.

Here is a simple code reproducing the (what I believe to be a) memory leak.

First, I use the garbage collector to force the cleaning of memory and then

look if the python command grows in memory in a "top".

sage: while True:

P=Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]])

eq=P.equations()

del P, eq

gc.collect()

....:

63

31

31

31

31

...

It constantly collects garbage, which is to be expected, and on the long

run, the python command does not increase in memory usage. While, on the

contrary:

sage: while True:

....: P=Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]])

....: fv=P.f_vector()

....: del P, fv

....: gc.collect()

....:

0

0

0

...

Which not to be expected I guess. Then, when one waits enough, one sees in

the "top" that the memory of python increases steadily... This is bad!

I have observed the same behavior with the following functions:

adjacency_matrix

f_vector

face_lattice

facet_adjacency_matrix

facial_adjacencies

graph

is_simple

vertex_adjacencies (although deprecated, also in the new method to produce

the output)

vertex_adjacency_matrix

vertex_graph

Someone has an idea?

--

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+***@googlegroups.com.

To post to this group, send email to sage-***@googlegroups.com.

Visit this group at http://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+***@googlegroups.com.

To post to this group, send email to sage-***@googlegroups.com.

Visit this group at http://groups.google.com/group/sage-devel.

For more options, visit https://groups.google.com/d/optout.