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().

Примечание

Предел памяти является “мягким”, потому что память проверяется только иногда. Обычно, больше памяти на самом деле используется, прежде чем избыток обнаруживается. Cf. Пример 1.

Вызов Pref::maxMem() возвращает текущее значение предела памяти, не изменяя его.

Вызов Pref::maxMem(NIL) выключает сторожевой таймер памяти.

Примеры

Пример 1

Никакое вычисление не должно увеличивать использование памяти текущего сеанса 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:

Параметры

kbytes

Предел памяти в кбайтах: неотрицательное целое число или выражение с помощью unit::Byte, unit::kByte, unit::MByte или unit::GByte.

Возвращаемые значения

Ранее заданный предел памяти: 0 или выражение, включающее unit::MByte.

Смотрите также

Функции MuPAD