Hi Daniel,

When the JVM terminates, all allocated memory is given back to the OS. The
vectors and buffers lie somewhere in the off-heap portion of the allocated
memory of the JVM (search for off-heap memory in Java).
Therefore, you do not need to close anything after a Java process dies.

Best,
Benjamin


On Fri, Sep 17, 2021 at 6:42 AM Daniel Hsu <[email protected]> wrote:

> Hi Benjamin,
>
> Thanks for the pointers. Is there a recommended way to clean up servers
> that were running code that didn't not properly close vectors?
>
> For example if I ran a Java program that did not properly close vectors,
> could I terminate the Java program and somehow find the un-closed vectors
> and manually close them from the command line?
>
> Essentially, how would I clean up vectors on a server after the Java
> program is terminated and I no longer have access to the `BufferAllocator`
> I used to create the vectors?
>
> Best,
> Daniel
>
> On 2021/09/13 12:27:41, Benjamin Wilhelm <[email protected]>
> wrote:
> > Hi Daniel,
> >
> > For testing you can close the `BufferAllocator` used. If assertions are
> > enabled, `close` will throw an exception if buffers are outstanding. For
> > production you should test your code well enough to be sure that all
> > vectors are closed.
> >
> > Other things that might help to detect memory leaks (in production if you
> > wish so):
> > * Child allocators (`BufferAllocator#newChildAllocator`). You can close
> an
> > child allocator to release all the memory allocated with it
> > * `BufferAllocator#getAllocatedMemory`: If this is !=0 this means that
> you
> > have still something allocated with this allocator
> >
> > I hope that helps
> > Benjamin
> >
> >
> > On Mon, Sep 13, 2021 at 9:17 AM Daniel Hsu <[email protected]>
> wrote:
> >
> > > Hi All,
> > >
> > > Is there a way to figure out which vectors I haven't called close() on
> > > yet? My concern is that if I have a bug in my code where I accidentally
> > > forget to call close() for many vectors, the space occupied by these
> > > vectors could grow forever and crash my system.
> > >
> > > How do I detect these vector "memory leaks"?
> > >
> > > Best,
> > > Daniel
> > >
> >
>

Reply via email to