evaluates expr, stopping if more than b bytes of memory are requested.
returns failexpr if the memory constraint is not met.
- MemoryConstrained generates an interrupt to stop the evaluation of expr if the amount of additional memory requested during the evaluation of expr exceeds b bytes.
- MemoryConstrained evaluates failexpr only if the evaluation is aborted.
- MemoryConstrained returns $Aborted if the evaluation is aborted and no failexpr is specified.
- Aborts generated by MemoryConstrained can be overruled by AbortProtect. »
- MemoryConstrained[expr,Infinity] imposes no memory constraint.
Examplesopen allclose all
Basic Examples (2)
Run a command until a memory limit is exceeded:
The loop ran until memory allocation for the result of Range exceeded the limit:
Specify the value to return if the time constraint is reached:
Use CheckAbort inside MemoryConstrained to select which parts are skipped if the limit is reached:
Properties & Relations (4)
The third argument is only evaluated if the memory limit is reached:
A nested AbortProtect can block the action of MemoryConstrained:
An enclosing AbortProtect is overridden by MemoryConstrained:
While code inside the MemoryConstrained is terminated, AbortProtect runs to completion:
MemoryConstrained can constrain the first argument of CheckAbort, but not the second:
Wolfram Research (1988), MemoryConstrained, Wolfram Language function, https://reference.wolfram.com/language/ref/MemoryConstrained.html (updated 2007).
Wolfram Language. 1988. "MemoryConstrained." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2007. https://reference.wolfram.com/language/ref/MemoryConstrained.html.
Wolfram Language. (1988). MemoryConstrained. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MemoryConstrained.html