[Paraview-developers] Release memory

RIVERA ROLDAN, Jorge Orlando Orlando.RIVERA at mtu.de
Thu Oct 22 05:36:41 EDT 2015


Dear  Forums Members,

I post this on VTK  , so I hope I am not  generating spam

I  have  a question regarding releasing Memory.

I have a vtkCompositeDataSet   or a vtkMultiBlockDataSet  up to 2 Levels.  Level3 is a Structured or Unstructured  grid, like :

--vtkMB   (root  )
-----vtkMB
---------vtkStructured
---------vtkUnstructured
-----vtkMB

and I  want to release memory  without  destroying my tree structure
I  get through  my tree (simplified code )

for( i=0 ; i< root->GetNumberOfBlocks() ; ++i )
{
     vtkSmartPointer<vtkSmavtkMultiBlockDataSet> level2Pointer=vtkMultiBlockDataSet::SafeDownCast(Root->GetBlock(i));
     for(k=0; k< level2Pointer->GetNumberOfBlocks(); k++)
     {
             If( load(cnt) )
             {
                      vtkSmartPointer<vtkDataSet> gridPointer=ReadGridFromFile(…..)
                      level2Pointer->SetBlock(k, gridPointer):
            }
else
{
                       vtkSmartPointer<vtkDataSet> gridPointer=vtkDataSet::SafeDownCast(level2Pointer->GetBlock(k));
                       gridPointer->ReleaseData();
                       vtkSmartPointer<vtkDataSet> emptyGrid;
                       level2Pointer->SetBlock(k, emptyGrid):
           }
           cnt++;
     } //for k

} //for i


As you can see  I get the  Un/Structured grid  pointed with the gridPointer . I try to release the Memory  an in its place I set an empty grid
All works  really nice, when I want to render a grid, I load it  in first IF  ,  otherwise,  in else will be supposedly  released .  When I see it with top or mem inspector  the  memory is actually  increasing.

So I assume I am doing something wrong  in the else part:

    vtkSmartPointer<vtkDataSet> gridPointer=vtkDataSet::SafeDownCast(level2Pointer->GetBlock(k));
    gridPointer->ReleaseData();
    vtkSmartPointer<vtkDataSet> emptyGrid;
    level2Pointer->SetBlock(k, emptyGrid):

PS  I also tried :
        gridPointer->Squeeze();
and/or  commeting out these lines :
       vtkSmartPointer<vtkDataSet> emptyGrid;
       level2Pointer->SetBlock(k, emptyGrid):


Any help will be appreciated

Thanks !!

--
MTU Aero Engines AG
Vorstand/Board of Management: Reiner Winkler, Vorsitzender/CEO; Dr. Rainer Martens, Michael Schreyoegg
Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: Klaus Eberhardt
Sitz der Gesellschaft/Registered Office: Muenchen
Handelsregister/Commercial Register: Muenchen HRB 157206

Diese E-Mail sowie ihre Anhaenge enthalten MTU-eigene vertrauliche oder rechtlich geschuetzte Informationen.
Wenn Sie nicht der beabsichtigte Empfaenger sind, informieren Sie bitte den Absender und loeschen Sie diese
E-Mail sowie die Anhaenge. Das unbefugte Speichern, Kopieren oder Weiterleiten ist nicht gestattet.

This e-mail and any attached documents are proprietary to MTU, confidential or protected by law.
If you are not the intended recipient, please advise the sender and delete this message and its attachments.
Any unauthorised storing, copying or distribution is prohibited.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20151022/d9f89a1b/attachment.html>


More information about the Paraview-developers mailing list