Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory Leak #3109

Open
BOOMXIKA opened this issue Apr 22, 2024 · 4 comments
Open

Memory Leak #3109

BOOMXIKA opened this issue Apr 22, 2024 · 4 comments
Labels
bug Something isn't working

Comments

@BOOMXIKA
Copy link

Description

In a SpringBoot Web application, the memory is not released after the method execution is completed.

Expected Behavior

The memory is not released after the method execution is completed.After stopping the application, the memory returns to normal.

Error Message

The JVM does not display any error messages, but the operating system issues memory warning messages

How to Reproduce?

code

Steps to reproduce

code1

Environment Info

dpen

@BOOMXIKA BOOMXIKA added the bug Something isn't working label Apr 22, 2024
@frankfliu
Copy link
Contributor

This is expected behavior:

  1. When you use TensorFlow engine, TensorFlow create native memory. On Java side, we don't have control to make TensorFlow release memory back to system. In general, you won't see system memory usage reduce until you stop the application.
  2. But this doesn't mean there is memory leak, when close NDArray, TensorFlow will free up internal memory allocation, and reuse the memory to create another NDArray. Usually the total memory will stablize at peak, and won't always increase.
  3. You need to make sure to close NDArray (or Model, Predictor etc) to ensure no native memory leak.

@BOOMXIKA
Copy link
Author

After I execute this method a few more times, the os will crash and jvm will throw an exception of "EXCEPTION_UNCAUGHT-CXX-EXCEPTION (0xe06d7363) at pc=0x00007ffd468c53ac, pid=25956, tid=27768",is this correct?

@frankfliu
Copy link
Contributor

Looks like there is something wrong with your code.

Can you take a look our springboot example: https://github.com/deepjavalibrary/djl-spring-boot-starter-demo. That project doesn't have memory leak issue.

@BOOMXIKA
Copy link
Author

I understand what you're saying "But this doesn't mean there is memory leak"!
Now,My question is how to implement memory recycling?The meaning is that when I don't need to use these models, they won't take up native memory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants