[vtkusers] java memory

Sebastien Jourdain sebastien.jourdain at kitware.com
Mon Mar 28 21:54:08 EDT 2011


Hi Jonathan,

Did I say Java reference count ? I think I was talking about the C++
layer that use reference count to delete unused VTK object. Depending
on the way you are doing things in Java, you can messed up that count
and therefore the vtkObject never get deleted as the C++ layer thinks
that reference is still used somewhere else.

Regarding some of your questions (please ask them again if I miss some
in a single mail) here are some concept that are behind.

If you call a method GetXXX() which return an object that has been
defined in the VTK library (in the C++ layer), you must use an
intermediate variable before assigning it to another SetXXX() vtk
object method.
Remarque: Java method name should have there first letter in lower
case which is not the case for the VTK ones. That could help to know
when you should do what.

Moreover, to clear the VTK object associated to the Java ones, you do
need to call

vtkGlobalJavaHash.GC();

Otherwise they never get released. This is to prevent thread crash in
using VTK inside a multi-threaded java application. I mean by that, it
is the responsibility of the developer to call that method at the
right time as VTK is not thread safe.

Good luck,

Seb


On Mon, Mar 28, 2011 at 9:24 PM, Jonathan Morra <jonmorra at gmail.com> wrote:
> Sorry for the barrage of questions, but I am really excited to get this
> working.  Is it OK to move around java objects without an intermediate
> reference?  Such as
> image1.SetOutputSpacing(image2.GetSpacing());
>
> On Mon, Mar 28, 2011 at 6:18 PM, Jonathan Morra <jonmorra at gmail.com> wrote:
>>
>> Also, is it ok to reuse Java variables?  Such as
>> vtkImageData image = filter.GetOuput();
>> // Do Stuff
>> image = filter2.GetOuput();
>>
>>
>> On Mon, Mar 28, 2011 at 5:19 PM, Jonathan Morra <jonmorra at gmail.com>
>> wrote:
>>>
>>> Should I have to call System.gc(); and System.runFinalization();
>>> frequently with VTK+Java?
>>>
>>> On Mon, Mar 28, 2011 at 5:05 PM, Jonathan Morra <jonmorra at gmail.com>
>>> wrote:
>>>>
>>>> OK, can you explain what you mean by Java reference count?  Here's some
>>>> example code that doesn't seem to be working well.  Every time I run it I
>>>> seem to accumulate memory I don't want.  Also, I'm using
>>>> vtkJavaGarbageCollector
>>>>         vtkLinearExtrusionFilter extruder = new
>>>> vtkLinearExtrusionFilter();
>>>>         extruder.SetInput(data);
>>>>         extruder.Update();
>>>>         vtkPolyData extruderOutput = extruder.GetOutput();
>>>>         vtkPolyDataToImageStencil pol2Stenc = new
>>>> vtkPolyDataToImageStencil();
>>>>         pol2Stenc.SetTolerance(0);
>>>>         pol2Stenc.SetInput(extruderOutput);
>>>>         pol2Stenc.SetInformationInput(binaryOrgan);
>>>>         pol2Stenc.Update();
>>>>         vtkImageStencilData pol2StencOutput = pol2Stenc.GetOutput();
>>>>         vtkImageStencil stencil = new vtkImageStencil();
>>>>         stencil.SetInput(binaryOrgan);
>>>>         stencil.ReverseStencilOn();
>>>>         stencil.SetStencil(pol2StencOutput);
>>>>         stencil.Update();
>>>>         final vtkImageData stencilOutput = stencil.GetOutput();
>>>>
>>>>             return stencilOutput;
>>>> On Mon, Mar 28, 2011 at 4:58 PM, Sebastien Jourdain
>>>> <sebastien.jourdain at kitware.com> wrote:
>>>>>
>>>>> Hi Jonathan,
>>>>>
>>>>> You should start by reading that thread.
>>>>>
>>>>> http://markmail.org/thread/k3u7gvsqwkocwfo5
>>>>>
>>>>> Seb
>>>>>
>>>>> On Mon, Mar 28, 2011 at 7:44 PM, Jonathan Morra <jonmorra at gmail.com>
>>>>> wrote:
>>>>> > I've been working with Java for a while now and can't seem to get my
>>>>> > memory
>>>>> > usage under control.  Is there anyone out there who's an expert in
>>>>> > VTK+Java
>>>>> > or at the very least has dealt with extensive memory usage in Java
>>>>> > with VTK
>>>>> > that could give me some advice or some reading material.
>>>>> > Thanks
>>>>> > _______________________________________________
>>>>> > 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
>>>>> >
>>>>> >
>>>>
>>>
>>
>
>



More information about the vtkusers mailing list