Skip to content

voiage.core.memory_optimization.MemoryOptimizer

Utility class for memory optimization in VOI analyses.

get_memory_usage([positional or keyword] self: None = None) -> float

Get current memory usage in bytes.

float: Current memory usage in bytes

Parameters:

  • self

Returns: float

get_available_memory([positional or keyword] self: None = None) -> float

Get available memory in bytes.

float: Available memory in bytes

Parameters:

  • self

Returns: float

is_memory_available([positional or keyword] self: None = None, [positional or keyword] required_bytes: float = None) -> bool

Check if required memory is available.

Args: required_bytes: Required memory in bytes

bool: True if memory is available, False otherwise

Parameters:

  • self
  • required_bytes float

Returns: bool

optimize_array_dtype([positional or keyword] self: None = None, [positional or keyword] arr: np.ndarray = None) -> np.ndarray

Optimize array data type to reduce memory usage.

Args: arr: Input array

np.ndarray: Array with optimized data type

Parameters:

  • self
  • arr np.ndarray

Returns: np.ndarray

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

List[np.ndarray]: List of array chunks

Parameters:

  • self
  • arr np.ndarray
  • max_chunk_size int

Returns: list[np.ndarray]

estimate_memory_usage([positional or keyword] self: None = None, [positional or keyword] obj: object = None) -> float

Estimate memory usage of an object in bytes.

Args: obj: Object to estimate memory usage for

float: Estimated memory usage in bytes

Parameters:

  • self
  • obj object

Returns: float

force_garbage_collection([positional or keyword] self: None = None) -> None

Force garbage collection to free memory.

Parameters:

  • self

Returns: None

monitor_memory_usage([positional or keyword] self: None = None, [positional or keyword] warning_threshold: float = 0.8) -> None

Monitor memory usage and warn if it exceeds threshold.

Args: warning_threshold: Threshold for memory usage warning (0.0 to 1.0)

Parameters:

  • self
  • warning_threshold float (default: 0.8)

Returns: None