% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/memory_utils.R
\name{get_memory_thresholds}
\alias{get_memory_thresholds}
\title{Get dynamic memory thresholds based on system RAM}
\usage{
get_memory_thresholds(total_ram = NULL)
}
\arguments{
\item{total_ram}{Numeric. Total system RAM in GB. If NULL (default),
auto-detects using C++ implementation.}
}
\value{
Named list with thresholds in MB:
\describe{
\item{silent}{Size below which conversions happen silently}
\item{warning}{Size requiring user confirmation}
\item{force}{Size requiring force=TRUE}
\item{blocked}{Size that cannot be converted}
}
}
\description{
Calculates appropriate memory thresholds for conversions based on
total system RAM. Returns conservative values suitable for most systems.
}
\details{
\strong{Calculation logic:}

Uses percentage of total RAM with safety margins:
\itemize{
\item Silent: 15\\% of RAM (up to 3GB max)
\item Warning: 30\\% of RAM (up to 8GB max)
\item Force: 50\\% of RAM (up to 16GB max)
\item Blocked: 80\\% of RAM (hard limit)
}

\strong{Fallback values} (if RAM detection fails):
\itemize{
\item Silent: 2 GB
\item Warning: 4 GB
\item Force: 8 GB
\item Blocked: 16 GB
}
}
\examples{
\donttest{
# Auto-detect
thresholds <- get_memory_thresholds()
# $silent: 3000 MB, $warning: 8000 MB, etc.

# Manual specification (e.g., for 32GB system)
thresholds <- get_memory_thresholds(total_ram = 32)
}

}
\seealso{
\code{\link{get_total_ram}}, \code{\link{memory_info}}
}
