Это взято из блога Яира Альтмана:
Приложение-заставка-заставка может облегчить большую часть боли, связанной с медленным запуском развернутых (скомпилированных) приложений Matlab. Решение для окна-заставки можно найти здесь. Хотя такая оболочка-заставка действительно полезна, также можно добиться реального ускорения запуска скомпилированного приложения с помощью переменной среды MCR_CACHE_ROOT.
Обычно MCR и автономный исполняемый файл распаковываются при каждом запуске во временном каталоге пользователя и удаляются, когда пользователь выходит из системы. По-видимому, когда установлена переменная среды MCR_CACHE_ROOT, эти файлы распаковываются только один раз и сохраняются для последующего повторного использования. Если это сообщение действительно верно, это может значительно ускорить время запуска скомпилированного приложения при последующих вызовах.
В Linux:
export MCR_CACHE_ROOT=/tmp/mcr_cache_root_$USER # local to host
mkdir -p @MCR_CACHE_ROOT
./myExecutable
В Windows:
REM set MCR_CACHE_ROOT=%TEMP%
set MCR_CACHE_ROOT="C:\Documents and Settings\Yair\Matlab Cache\"
myExecutable.exe
Есть также способы установить эту переменную env на постоянной основе в Windows, если это необходимо...
Установка MCR_CACHE_ROOT особенно важна при запуске исполняемого файла из сетевого расположения (NFS), поскольку распаковка в сетевое расположение может быть довольно медленной. Если исполняемый файл запускается параллельно на разных машинах (например, компьютерный кластер с параллельной программой), то это может даже вызывать блокировки, когда разные кластеры пытаются получить доступ к одному сетевому местоположению. В обоих случаях решение состоит в том, чтобы установить MCR_CACHE_ROOT в локальную папку (например, /tmp или %TEMP%). Если вы планируете повторно использовать извлеченные файлы, то, возможно, вам следует не удалять извлеченные файлы, а использовать их повторно. В противном случае просто удалите временную папку после завершения работы исполняемого файла. В следующем примере $RANDOM — это функция bash, которая возвращает случайное число:
export MCR_CACHE_ROOT=/tmp/mcr$RANDOM
./matlab_executable
rm -rf $MCR_CACHE_ROOT
Настройка MCR_CACHE_ROOT также может использоваться для устранения других узких мест производительности в развернутых приложениях, как описано в технической документации MathWorks. решение и соответствующую статью здесь а>.
В связи с этим скомпилированный исполняемый файл Matlab может завершиться ошибкой с ошибкой «Не удалось получить доступ к кешу компонента MCR», когда Matlab не может записать в каталог кеша MCR из-за отсутствия прав доступа. Этого можно избежать, задав для MCR_CACHE_ROOT несуществующий каталог или папку, в которой есть глобальные права доступа (/tmp или %TEMP% обычно являются такими доступными для записи папками) — см. соответствующие сообщения здесь и здесь.
person
bla
schedule
19.10.2012