yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10579
[Bug 1290194] Re: O.reset() does not free memory
Hi Anton,
you are right, changing the script as follows has the same effect:
# -*- coding: utf-8
import subprocess
numberTests = 10
for z in range(numberTests):
#O.reset()
bodies= O.bodies.append(pack.regularHexa(pack.inSphere((Vector3(0.0,0.0,0.0)),0.5),radius=0.01,gap=0))
print "number of bodies:", len(O.bodies)
for b in bodies:
O.bodies.erase(b)
cmd = "ps -o vsz -p `pgrep yade` | grep -v VSZ"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
meminfo = process.communicate()[0].strip()
print "Yade memory usage: ", meminfo, "kB"
cmd = "egrep 'MemFree' /proc/meminfo"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
meminfo = process.communicate()[0]
print meminfo
sys.exit(0)
--
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/1290194
Title:
O.reset() does not free memory
Status in Yet Another Dynamic Engine:
New
Bug description:
O.reset() does not free the memory, i.e. if you run a series of
simulations in a loop the memory usage is accumulating. Here is a
script which reproduces the issue (it should affect all versions):
# -*- coding: utf-8
import subprocess
numberTests = 10
for z in range(numberTests):
O.reset()
O.bodies.append(pack.regularHexa(pack.inSphere((Vector3(0.0,0.0,0.0)),0.5),radius=0.01,gap=0))
print "number of bodies:", len(O.bodies)
cmd = "ps -o vsz -p `pgrep yade` | grep -v VSZ"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
meminfo = process.communicate()[0].strip()
print "Yade memory usage: ", meminfo, "kB"
cmd = "egrep 'MemFree' /proc/meminfo"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
meminfo = process.communicate()[0]
print meminfo
sys.exit(0)
To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/1290194/+subscriptions
References