Comments (3)
From API point of view, we should close the Stream
, however, there is no resource leak in Files.list()
case. The DirectoryStream
object doesn't hold any resource.
from djl.
😃Thank you for your response.
Files.list()
relies on file descriptors to manage the underlying file system resources. However, while Java's Garbage Collection automatically handles the closure of DirectoryStream
objects created by Files.list()
, there's a potential risk of file descriptor exhaustion before GC is triggered.
This occurs because GC operates non-deterministically, meaning it's uncertain when exactly it will run to reclaim resources. Consequently, if file descriptors aren't properly managed and closed, there's a possibility of exhausting system resources, leading to performance issues or even system crashes.
from djl.
😃Thank you for your response.
Files.list()
relies on file descriptors to manage the underlying file system resources. However, while Java's Garbage Collection automatically handles the closure ofDirectoryStream
objects created byFiles.list()
, there's a potential risk of file descriptor exhaustion before GC is triggered. This occurs because GC operates non-deterministically, meaning it's uncertain when exactly it will run to reclaim resources. Consequently, if file descriptors aren't properly managed and closed, there's a possibility of exhausting system resources, leading to performance issues or even system crashes.
Upon reviewing the discussion at Stack Overflow, I've realized my previous understanding was mistaken. The feedback there confirms that Java's GC, while eventually handling DirectoryStream
objects, does not reliably or promptly close file descriptors. To avoid leaks and ensure efficient resource management, employing try-with-resources
is the recommended approach.
In light of this, updating methods like ai.djl.util.Utils.getNestedModelDir()
with try-with-resources
would align with best practices, ensuring file descriptors are closed in a timely manner. My previous assertion lacked accuracy, and I concur with the necessity for these improvements.
from djl.
Related Issues (20)
- 128 dimension face matching algo
- Is there any version of pytorch native library for cudnn9 HOT 2
- Using Llama for inference, some Chinese characters may become garbled
- how to limit OnnxRuntime cpu usage? HOT 1
- 0.27调用tensorflow的pb模型崩溃(可以加载模型,推理时崩溃) HOT 12
- TorchScript inference slower than default torch model HOT 4
- [FATAL] extensions/tokenizers/rust/src/lib.rs crashes the process HOT 1
- CUBLAS_STATUS_NOT_INITIALIZED HOT 10
- How to run FLOAT16 OnnxRuntime models HOT 3
- UnsatisfiedLinkError: 'boolean ai.djl.pytorch.jni.PyTorchLibrary.torchIsContiguous(long)' HOT 2
- How can I implement the Adaline perceptron in DJL
- pytorch-model-zoo: PtSsdTranslator.Builder.self() returns null
- TextEmbeddingTranslator fails with "EngineException: Expected all tensors to be on the same device"
- tensorrt 的demo 有吗 yolov8的
- resize diff between java djl and python cv2 HOT 1
- Does Lightgbm support multi-class inference? HOT 1
- ONNX Engine Options Bug, ONNX features cannot be defined,It's a parameter type design problem HOT 2
- [pytorch] UnsatisfiedLinkError on Windows11/Intel HOT 3
- Windows libraries for pytorch-native-cpu are missing for version 2.3.0 from maven central. HOT 1
- ai.djl.nn.transformer IdEmbedding has memory leak. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from djl.