2014-01-15 5 views
3

У меня есть сценарий MATLAB, который выполняет сложные преобразования и вычисления в очень больших трехмерных матрицах (например, 50 000 x 300 x 100). Я не могу делать что-либо еще на компьютере во время работы скрипта, потому что сценарий очень интенсивен для памяти, и это нормально; но почему компьютер остается медленным после завершения сценария, и переменные больше не находятся в рабочей области? Я предполагаю, что это должно быть связано с тем, как выделяется память в сценарии MATLAB?Почему мой компьютер медленный после запуска интенсивного памяти сценария MATLAB

[Я бегу Mac OSX 10.7 и MATLAB 7,13]

+3

Возможно, потому что все остальное выгружается на диск во время работы вашего сценария и должно быть заменено обратно в ОЗУ. Проверьте активность жесткого диска. –

+0

Есть ли способ минимизировать медлительность? Если это то, что все заменяется обратно в ОЗУ, то это займет до получаса? Существует не так много фоновых приложений, работающих – user2524828

+0

Я бы предложил закрыть и повторно открыть MATLAB после завершения скрипта. – am304

ответ

1

Вы правы, это связано с выделением памяти. Matlab запрашивает память, когда это необходимо, но сохраняет эту память до ее закрытия. Вы заметили, что ваши системы начинают работать отлично, как только вы закрываете Matlab. К сожалению, похоже, что для возврата памяти в систему не существует возможности для onstruct matlab.

+2

Команда Matlab's'pack' может использоваться для восстановления выделенного, но неиспользуемого пространства памяти. Документация для 'pack' утверждает: 'Функция pack не влияет на объем памяти, выделенный для процесса MATLAB. Вы должны выйти из MATLAB, чтобы освободить эту память. – Max

Смежные вопросы