SIENTIAPDE-1231

Refactor memory management in MLFlowRepository to use `force_memory_release` function

- Replaced direct calls to `gc.collect()` with `force_memory_release()` for improved memory optimization after model deletion.
- This change enhances memory management during model operations, ensuring more efficient resource handling.
This commit is contained in:
vitor-aignosi
2025-10-13 15:57:23 -03:00
parent 143dd7759e
commit a3989b84af

View File

@@ -36,13 +36,16 @@ TRANSFORMED_COMPRESSED_PATH = "artifacts/training_transformer.pkl"
PREDICTION_COMPRESSED_PATH = "artifacts/stacking_model.pkl"
def force_memory_release():
def force_memory_release(logger: Logger, metadata: dict):
gc.collect()
try:
ctypes.CDLL("libc.so.6").malloc_trim(0)
except:
pass
logger.custom_info(
f"Memory released", metadata)
except Exception as e:
logger.custom_info(
f"Memory release failed: {e}", metadata)
class MLFlowRepository():
@@ -627,7 +630,7 @@ class MLFlowRepository():
f"Deleting model {model_name} from memory")
del model
gc.collect()
force_memory_release()
return prediction
@@ -656,7 +659,7 @@ class MLFlowRepository():
f"Deleting model {model_name} from memory")
del model
gc.collect()
force_memory_release()
return prediction