<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
That's interesting, and quite unintuitive!  maybe someone with better understanding of VTK's inner work can offer an explanation!<br><br>Xiaofeng<br><br><BR><div><hr id="stopSpelling">Date: Wed, 6 Jul 2011 10:25:55 -0400<br>Subject: Re: [vtkusers] Delete actor and release memory<br>From: nicolas.lists@gmail.com<br>To: xf10036@hotmail.com<br>CC: sebastien.jourdain@kitware.com; vtkusers@public.kitware.com<br><br><div><b><u>Actor:</u></b></div>create &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ref count == 1<div>add to renderer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; ref count == 2</div><div>remove from renderer -&gt; ref count == 1<br><div>delete &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; <font color="#ff0000">ref count ==&nbsp;1576215064, -304508392, etc.</font></div>


<div><font color="#ff0000"><br></font></div><div><b><u>PolyData:</u></b></div><div>create &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; ref count == 1</div><div>add to mapper &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; ref count == 3</div>


<div>add mapper to actor, add actor to renderer, render -&gt; ref count == 5</div><div>remove actor from renderer, delete actor &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ref count == 3</div><div>delete &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;&nbsp;<span style="color: rgb(255, 0, 0);">ref count ==&nbsp;52101520, -304508392, etc.</span></div>
<div><span style="color: rgb(255, 0, 0);"><br></span></div><div>Something interesting I noticed is that if I do the same, without using the renderer (adding/removing actors), the polydata ref count looks fine:</div><div><br>
</div><div><div><b><span style="font-weight: normal;" class="ecxApple-style-span"><div style="text-decoration: underline;">
<b><u>Actor:</u></b></div>create &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ref count == 1<div><div>delete &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt;&nbsp;<font color="#ff0000">ref count ==&nbsp;1576215064, -304508392, etc.</font></div><div><font color="#ff0000"><br>
</font></div><div><b><u>PolyData:</u></b></div><div>create &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; ref count == 1</div><div>add to mapper &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; ref count == 3</div>
</div></span></b><b><span style="font-weight: normal;" class="ecxApple-style-span"><div style="display: inline !important;"><div style="display: inline !important;">delete related actor &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ref count == 3</div>
</div></span></b></div><div><b><span style="font-weight: normal;" class="ecxApple-style-span"><div style="display: inline !important;"><div style="display: inline !important;">delete &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;&nbsp;<span style="color: rgb(255, 0, 0);">ref count ==&nbsp;0</span></div>
</div></span></b><b><span style="font-weight: normal;" class="ecxApple-style-span"></span></b></div></div><div><br></div>
<div><br></div><div>I tried the vtk master and 5.6.1 tag from github.</div>
<div><br></div><div>Thanks</div><div><br></div><div><br><div class="ecxgmail_quote">On Tue, Jul 5, 2011 at 6:28 PM, Xiaofeng Z <span dir="ltr">&lt;<a href="mailto:xf10036@hotmail.com">xf10036@hotmail.com</a>&gt;</span> wrote:<br>


<blockquote style="padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="ecxgmail_quote">
<div dir="ltr">
<div dir="ltr">
<div style='color: rgb(0, 0, 0); font-family: "Calibri"; font-size: 12pt;'>
<div>Does the memory location pointed by variable actor still contain a valid 
object (e.g. reference count &gt; 0) after actor-&gt;Delete()?&nbsp; If not, 
then memory used by actor should have been released.</div>
<div style='color: rgb(0, 0, 0); font-family: "Calibri"; font-size: small; font-style: normal; font-weight: normal; text-decoration: none; display: inline;'>
<div style="font: 10pt/normal tahoma; font-size-adjust: none; font-stretch: normal;">
<div><font size="3" face="Calibri"></font>&nbsp;</div>
<div><font size="3" face="Calibri">xz</font></div>
<div>&nbsp;</div>
<div style="background: rgb(245, 245, 245);">
<div><b>From:</b> <a title="nicolas.lists@gmail.com" href="mailto:nicolas.lists@gmail.com">Nicolas Rannou</a> </div>
<div><b>Sent:</b> Tuesday, July 05, 2011 9:10 AM</div>
<div><b>To:</b> <a title="sebastien.jourdain@kitware.com" href="mailto:sebastien.jourdain@kitware.com">Sebastien Jourdain</a> </div>
<div><b>Cc:</b> <a title="vtkusers@public.kitware.com" href="mailto:vtkusers@public.kitware.com">vtkusers@public.kitware.com</a> </div>
<div><b>Subject:</b> Re: [vtkusers] Delete actor and release 
memory</div></div></div>
<div>&nbsp;</div></div>
<div style='color: rgb(0, 0, 0); font-family: "Calibri"; font-size: small; font-style: normal; font-weight: normal; text-decoration: none; display: inline;'><div><div></div><div>Hi 
Sebastien, 
<div>&nbsp;</div>
<div>Yes, I don't delete it on purpose. 
<div>&nbsp;</div>
<div>I would like to keep the polydata in memory but delete everything else 
which is related to the visualization in order to decrease the memory 
usage!</div>
<div>&nbsp;</div>
<div>Thanks</div>
<div>&nbsp;</div>
<div>Nicolas</div>
<div>
<div>&nbsp;</div>
<div class="ecxgmail_quote">On Sat, Jul 2, 2011 at 11:19 PM, Sebastien Jourdain <span dir="ltr">&lt;<a href="mailto:sebastien.jourdain@kitware.com">sebastien.jourdain@kitware.com</a>&gt;</span> 
wrote:<br>
<blockquote style="padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="ecxgmail_quote">You never deleted the sphere.<br>
  <div>
  <div></div>
  <div><br>On Tue, Jun 28, 2011 at 5:56 PM, Nicolas Rannou &lt;<a href="mailto:nicolas.lists@gmail.com">nicolas.lists@gmail.com</a>&gt; 
  wrote:<br>&gt; Hi all,<br>&gt; I would like to delete/remove actors from my 
  rendering window to free<br>&gt; memory.<br>&gt; The issue is that the memory 
  usage doesn't decrease after removing/deleting<br>&gt; the actors.<br>&gt; 
  From my understanding, both following pseudo-codes should use the same<br>&gt; 
  amount of memory.<br>&gt; But,<br>&gt; The first one uses: 15 Mb for 1000 
  spheres:<br>&gt; The second uses: 90 Mb for 1000 spheres:<br>&gt; How should I 
  proceed in the 2nd case, to get back to the "original" memory<br>&gt; usage 
  without actor?<br>&gt; Thanks,<br>&gt;<br>&gt; Nicolas<br>&gt; 
  ______________________________<br>&gt; 15 Mb<br>&gt; 
  ______________________________<br>&gt; //Create a sphere<br>&gt; 
  vtkSphereSource* sphere = new ...<br>&gt; 
  ______________________________<br>&gt; 90 Mb<br>&gt; 
  ______________________________<br>&gt; //Create sphere<br>&gt; 
  vtkSphereSource* sphere = new ...<br>&gt; // mapper<br>&gt; vtkMapper* mapper 
  ...<br>&gt; mapper-&gt;SetInput( sphere-&gt;GetOutput() )<br>&gt; // 
  actor<br>&gt; vtkActor* actor...<br>&gt; actor-&gt;SetMapper(mapper)<br>&gt; 
  mapper-&gt;Delete()<br>&gt; // Add and remove actor<br>&gt; 
  renderer-&gt;AddActor(actor)<br>&gt; renderer-&gt;RemoveActor(actor)<br>&gt; 
  // Delete actor<br>&gt; actor-&gt;Delete()<br>&gt; 
  ______________________________<br>&gt; 
  ______________________________<br>&gt;<br>&gt;<br></div></div>&gt; 
  _______________________________________________<br>&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>&gt;<br>&gt; Visit other Kitware 
  open-source projects at<br>&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>&gt;<br>&gt; 
  Please keep messages on-topic and check the VTK FAQ at:<br>&gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>&gt;<br>&gt; Follow this 
  link to subscribe/unsubscribe:<br>&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>&gt;<br>&gt;<br></blockquote></div>
<div>&nbsp;</div></div></div>
</div></div>
<BR><hr><div>
_______________________________________________<br>Powered by 
<a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at 
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br><br>Please keep messages 
on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br><br>Follow 
this link to 
subscribe/unsubscribe:<br><a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br></div><BR></div></div></div></div>
</blockquote></div><br></div></div></div>                                               </div></body>
</html>