voiage.core.memory_optimization.MemoryOptimizer
Utility class for memory optimization in VOI analyses.
Methods
Section titled “Methods”get_memory_usage
Section titled “get_memory_usage”get_memory_usage([positional or keyword] self: None = None) -> floatGet current memory usage in bytes.
Returns
Section titled “Returns”float: Current memory usage in bytes
Parameters:
self
Returns: float
get_available_memory
Section titled “get_available_memory”get_available_memory([positional or keyword] self: None = None) -> floatGet available memory in bytes.
Returns
Section titled “Returns”float: Available memory in bytes
Parameters:
self
Returns: float
is_memory_available
Section titled “is_memory_available”is_memory_available([positional or keyword] self: None = None, [positional or keyword] required_bytes: float = None) -> boolCheck if required memory is available.
Args: required_bytes: Required memory in bytes
Returns
Section titled “Returns”bool: True if memory is available, False otherwise
Parameters:
selfrequired_bytesfloat
Returns: bool
optimize_array_dtype
Section titled “optimize_array_dtype”optimize_array_dtype([positional or keyword] self: None = None, [positional or keyword] arr: np.ndarray = None) -> np.ndarrayOptimize array data type to reduce memory usage.
Args: arr: Input array
Returns
Section titled “Returns”np.ndarray: Array with optimized data type
Parameters:
selfarrnp.ndarray
Returns: np.ndarray
chunk_large_array
Section titled “chunk_large_array”chunk_large_array([positional or keyword] self: None = None, [positional or keyword] arr: np.ndarray = None, [positional or keyword] max_chunk_size: int = None) -> list[np.ndarray]Split a large array into chunks to reduce memory usage.
Args: arr: Input array max_chunk_size: Maximum size of each chunk in number of rows
Returns
Section titled “Returns”List[np.ndarray]: List of array chunks
Parameters:
selfarrnp.ndarraymax_chunk_sizeint
Returns: list[np.ndarray]
estimate_memory_usage
Section titled “estimate_memory_usage”estimate_memory_usage([positional or keyword] self: None = None, [positional or keyword] obj: object = None) -> floatEstimate memory usage of an object in bytes.
Args: obj: Object to estimate memory usage for
Returns
Section titled “Returns”float: Estimated memory usage in bytes
Parameters:
selfobjobject
Returns: float
force_garbage_collection
Section titled “force_garbage_collection”force_garbage_collection([positional or keyword] self: None = None) -> NoneForce garbage collection to free memory.
Parameters:
self
Returns: None
monitor_memory_usage
Section titled “monitor_memory_usage”monitor_memory_usage([positional or keyword] self: None = None, [positional or keyword] warning_threshold: float = 0.8) -> NoneMonitor memory usage and warn if it exceeds threshold.
Args: warning_threshold: Threshold for memory usage warning (0.0 to 1.0)
Parameters:
selfwarning_thresholdfloat(default:0.8)
Returns: None