[vtkusers] Fwd: Memory leak

Cory Quammen cquammen at cs.unc.edu
Tue Apr 10 08:44:57 EDT 2012


The code you've provided looks reasonable. If you wait a while, does
the memory usage go down eventually?

Do you have access to a Linux machine or a Mac? If so, valgrind should
show you were the memory leak is coming from.

Cory

On Tue, Apr 10, 2012 at 12:00 AM, Jonathan Morra <jonmorra at gmail.com> wrote:
> I posted this a while ago and got no response.  Does anyone else see this
> problem?  Is there more information that I can provide?
>
>
> ---------- Forwarded message ----------
> From: Jonathan Morra <jonmorra at gmail.com>
> Date: Tue, Mar 27, 2012 at 8:10 AM
> Subject: Memory leak
> To: VTK Mailing List <vtkusers at vtk.org>
>
>
> I posted this problem before, but got no response.  I've slightly modified
> my test program to illustrate the problem more clearly.  Specifically, when
> I run the below code on Windows 7 compiled with MSVC 2008 in 32 bit with Qt
> 4.7.4 and VTK pulled from git master on March 5, 2012, I get a pretty
> pronounced memory leak.  As I mouse over the image, then memory in the
> Windows Task Manager climbs.  If I comment out the imageViewer->Render();
> line then the memory stays constants.
>
> Can someone please
> 1.  Verify that they see this on their machine as well
> 2.  Provide a way to fix it.
>
> Thanks
>
> #include <QtGui/QApplication>
>
> #include <QMainWindow>
>
> #include <QVTKWidget2.h>
>
> #include <vtkImageViewer2.h>
>
> #include <vtkImageData.h>
>
> #include <vtkPointData.h>
>
> #include <vtkGenericOpenGLRenderWindow.h>
>
> class MyQVTKWidget2 : public QVTKWidget2 {
>
> public:
>
>     MyQVTKWidget2 (vtkImageViewer2 *imageViewer, QWidget *parent = 0) :
> QVTKWidget2(parent) {
>
>         this->imageViewer = imageViewer;
>
>     }
>
>     virtual ~MyQVTKWidget2() {
>
>         imageViewer->Delete();
>
>     }
>
>     void mouseMoveEvent(QMouseEvent *) {
>
>         for (int i=0; i<1000; ++i) {
>
>             // Comment out these lines to see the memory stay constant
>
>             imageViewer->Render();
>
>         }
>
>     }
>
> private:
>
>     vtkImageViewer2 *imageViewer;
>
> };
>
> int main(int argc, char *argv[]) {
>
>     QApplication a(argc, argv);
>
>     vtkImageData *imageData = vtkImageData::New();
>
>     imageData->SetExtent(0, 100, 0, 100, 0, 100);
>
>     imageData->SetOrigin(0, 0, 0);
>
>     imageData->SetSpacing(1, 1, 1);
>
>     imageData->AllocateScalars();
>
>     imageData->GetPointData()->GetScalars()->FillComponent(0, 0);
>
>     vtkImageViewer2 *imageViewer = vtkImageViewer2::New();
>
>     imageViewer->SetInput(imageData);
>
>     MyQVTKWidget2 *widget = new MyQVTKWidget2(imageViewer);
>
>     imageViewer->SetRenderWindow(widget->GetRenderWindow());
>
>     QMainWindow mainWindow;
>
>     mainWindow.setGeometry(200, 200, 300, 300);
>
>     mainWindow.setCentralWidget(widget);
>
>     mainWindow.show();
>
>     imageData->Delete();
>
>     return a.exec();
>
> }
>
>
> Here is the Qt .pro file as well if it helps
>
>
> #-------------------------------------------------
>
>
> #
>
> # Project created by QtCreator 2012-02-24T13:30:58
>
>
> #
>
> #-------------------------------------------------
>
> QT       += core opengl gui
>
>
>
> TARGET = QVTKWidget2Test
>
> CONFIG   += console
>
> CONFIG   -= app_bundle
>
> TEMPLATE = app
>
>
> SOURCES += main.cpp
>
> LIBS    += -L../../vtk/lib -lvtkCommon -lvtksys -lQVTK\
>
>
>  -lvtkViews -lvtkWidgets -lvtkInfovis -lvtkRendering -lvtkGraphics
> -lvtkImaging -lvtkIO -lvtkFiltering\
>
>
>  -lvtklibxml2 -lvtkDICOMParser -lvtkpng -lvtkpng -lvtktiff -lvtkzlib
> -lvtkjpeg -lvtkalglib -lvtkexpat\
>
>
>  -lvtkverdict -lvtkmetaio -lvtkNetCDF -lvtksqlite -lvtkexoIIc -lvtkftgl
> -lvtkfreetype -lvtkHybrid\
>
>
>  -lvtkVolumeRendering
>
> INCLUDEPATH += ../vtk/include
>
>
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



-- 
Cory Quammen
Research Associate
Department of Computer Science
The University of North Carolina at Chapel Hill



More information about the vtkusers mailing list