<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
I have written it months ago and it worked well for small files and timeseries for about 30 files - I have just come across it trying to write a time series of 200 files. <br><br>I can already download ParaView 3.6? Great, I did not know this!<br><br>thx,<br>Natalie<br><br>&gt; Date: Fri, 17 Jul 2009 08:47:37 -0400<br>&gt; Subject: Re: [Paraview] memory leak in writer<br>&gt; From: utkarsh.ayachit@kitware.com<br>&gt; To: nataliehapp@hotmail.com<br>&gt; CC: paraview@paraview.org<br>&gt; <br>&gt; Out of curiosity, why are you writing your own wrapper? ParaView 3.6<br>&gt; onwards supports writing time series for legacy vtk files.<br>&gt; <br>&gt; Utkarsh<br>&gt; <br>&gt; On Fri, Jul 17, 2009 at 7:53 AM, Natalie<br>&gt; Happenhofer&lt;nataliehapp@hotmail.com&gt; wrote:<br>&gt; &gt; Hi!<br>&gt; &gt; I´ve written a Wrapper for the Legacy VTK files writer, so that it writes a<br>&gt; &gt; whole timeseries if I want it to. Lamentably, applying it, it needs more and<br>&gt; &gt; more memory, so I am looking for a memory leak.<br>&gt; &gt;<br>&gt; &gt; Here is the bit of code I suspect:<br>&gt; &gt;<br>&gt; &gt; &nbsp;vtkInformation* inInfo = inputVector[0]-&gt;GetInformationObject(0);<br>&gt; &gt; &nbsp; vtkDataObject* input = inInfo-&gt;Get(vtkDataObject::DATA_OBJECT());<br>&gt; &gt;<br>&gt; &gt; &nbsp; vtkSmartPointer&lt;vtkDataObject&gt; inputCopy;<br>&gt; &gt; &nbsp; inputCopy.TakeReference(input-&gt;NewInstance());<br>&gt; &gt; &nbsp; inputCopy-&gt;ShallowCopy(input);<br>&gt; &gt;<br>&gt; &gt; &nbsp; vtksys_ios::ostringstream fname;<br>&gt; &gt; &nbsp; if (this-&gt;WriteAllTimeSteps)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &nbsp;&nbsp;&nbsp; vtkstd::string path =<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtksys::SystemTools::GetFilenamePath(this-&gt;FileName);<br>&gt; &gt; &nbsp;&nbsp;&nbsp; vtkstd::string fnamenoext =<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtksys::SystemTools::GetFilenameWithoutLastExtension(this-&gt;FileName);<br>&gt; &gt; &nbsp;&nbsp;&nbsp; vtkstd::string ext =<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtksys::SystemTools::GetFilenameLastExtension(this-&gt;FileName);<br>&gt; &gt; &nbsp;&nbsp;&nbsp; if((this -&gt; CurrentTimeIndex) &lt; 10)&nbsp; fname &lt;&lt; path &lt;&lt; "/" &lt;&lt; fnamenoext<br>&gt; &gt; &lt;&lt; ".000" &lt;&lt;this-&gt;CurrentTimeIndex &lt;&lt; ext;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; else if((this -&gt; CurrentTimeIndex) &lt; 100) fname &lt;&lt; path &lt;&lt; "/" &lt;&lt;<br>&gt; &gt; fnamenoext &lt;&lt; ".00" &lt;&lt; this -&gt; CurrentTimeIndex &lt;&lt; ext;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; else if((this -&gt; CurrentTimeIndex) &lt; 1000) fname &lt;&lt; path &lt;&lt; "/" &lt;&lt;<br>&gt; &gt; fnamenoext &lt;&lt; ".0" &lt;&lt; this -&gt; CurrentTimeIndex &lt;&lt; ext;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; else fname &lt;&lt; path &lt;&lt; "/" &lt;&lt; fnamenoext &lt;&lt; this -&gt; CurrentTimeIndex &lt;&lt;<br>&gt; &gt; ext;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &nbsp; else<br>&gt; &gt; &nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &nbsp;&nbsp;&nbsp; fname &lt;&lt; this-&gt;FileName;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &gt;<br>&gt; &gt; //Here I call the usual VTK Writer and set the input<br>&gt; &gt;<br>&gt; &gt; &nbsp; vtkGenericDataObjectWriter* Writer = vtkGenericDataObjectWriter::New();<br>&gt; &gt; &nbsp; Writer -&gt; SetInput(inputCopy);<br>&gt; &gt; &nbsp; Writer -&gt; SetFileName(fname.str().c_str());<br>&gt; &gt; &nbsp; if((this -&gt; FileType) == 1) Writer -&gt; SetFileTypeToASCII();<br>&gt; &gt; &nbsp; else&nbsp;&nbsp; Writer -&gt; SetFileTypeToBinary();<br>&gt; &gt;<br>&gt; &gt; &nbsp; Writer -&gt; Update();<br>&gt; &gt;<br>&gt; &gt; &nbsp; if (this-&gt;WriteAllTimeSteps)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &nbsp;&nbsp;&nbsp; this-&gt;CurrentTimeIndex++;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; if (this-&gt;CurrentTimeIndex == this-&gt;NumberOfTimeSteps)<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Tell the pipeline to stop looping.<br>&gt; &gt;<br>&gt; &gt; request-&gt;Remove(vtkStreamingDemandDrivenPipeline::CONTINUE_EXECUTING());<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this-&gt;CurrentTimeIndex = 0;<br>&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &gt;<br>&gt; &gt; &nbsp; Writer -&gt; Delete();<br>&gt; &gt; &nbsp; return 1;<br>&gt; &gt;<br>&gt; &gt; Is there anything I forget to delete?<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; thx for answers<br>&gt; &gt; Natalie<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; ________________________________<br>&gt; &gt; Nuevo Internet Explorer 8 ¡Es Gratis y optimizado para MSN!<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Powered by www.kitware.com<br>&gt; &gt;<br>&gt; &gt; Visit other Kitware open-source projects at<br>&gt; &gt; http://www.kitware.com/opensource/opensource.html<br>&gt; &gt;<br>&gt; &gt; Please keep messages on-topic and check the ParaView Wiki at:<br>&gt; &gt; http://paraview.org/Wiki/ParaView<br>&gt; &gt;<br>&gt; &gt; Follow this link to subscribe/unsubscribe:<br>&gt; &gt; http://www.paraview.org/mailman/listinfo/paraview<br>&gt; &gt;<br>&gt; &gt;<br><br /><hr />¿Quieres conocerte mejor? <a href='http://www.descubrewindowslive.com/' target='_new'>¡Conoce lo que Windows Live tiene especialmente para ti!</a></body>
</html>