Pref
::maxMem
Установите предел памяти для сеанса
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Pref::maxMem(kbytes
)
Pref::maxMem(NIL)
Pref::maxMem()
Pref::maxMem(kbytes)
с kbytes
больше, чем 0 устанавливает предел для физически выделенной памяти о текущем сеансе MuPAD®. Расчет, превышающий этот предел памяти, повышает ошибку.
Физически выделенная память является второй из значений, возвращенных bytes()
.
Предел памяти является “мягким”, потому что память проверяется только иногда. Обычно, больше памяти на самом деле используется, прежде чем избыток обнаруживается. См. Пример 1.
Вызов Pref::maxMem()
возвращает текущее значение предела памяти, не изменяя его.
Вызов Pref::maxMem(NIL)
выключает сторожевой таймер памяти.
Никакой расчет не должен увеличивать использование памяти текущего сеанса MuPAD к больше, чем в общей сложности 10 мегабайтам:
Pref::maxMem(10 * unit::MByte):
Следующий цикл создает большие и большие матрицы, пока предел памяти не превышен. Обратите внимание на то, что текущее выделение физической памяти, возвращенное bytes()
[2] измеряется в байтах:
for n from 100 to 150 step 5 do A := linalg::vandermonde([x.j $ j=1..n]); print(n, ceil(bytes()[2]/1024)*unit::kByte); end_for:
Error: Out of memory [watchdog-memory]; Evaluating: linalg::vandermonde
Error: Out of memory. [watchdog-memory] Evaluating: linalg::vandermonde
Обратите внимание на то, что предел памяти был превышен при вычислении 115 ×115 матриц Вандермонда. Однако, потому что потребление памяти измеряется только иногда, эта матрица была сгенерирована успешно без ошибки. Только на следующем шаге, сторожевой таймер памяти распознает чрезмерное использование памяти и прерывает расчет 120×120 матрица Вандермонда.
Pref::maxMem(NIL): delete A:
|
Предел памяти в кбайтах: неотрицательное целое число или выражение с помощью |
Ранее заданный предел памяти: 0 или выражение, включающее unit::MByte
.