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