Диагностируйте недопустимый или безразличный Windows Change Notification Handles

MATLAB® использует функцию операционной системы Windows® под названием change notification handles, чтобы обнаружить, когда файлы в связанной папке изменяются. При определенных обстоятельствах Windows не удается предоставить MATLAB допустимый или быстро реагирующий Указатель Уведомления об Изменении. Эти три наиболее распространенных причины для недопустимых или безразличных указателей уведомления об изменении:

  • Windows исчерпал свое предоставление указателей уведомления.

  • Заданная папка находится в файловой системе, которая не поддерживает уведомление об изменении. (Синтаксис файловый сервер TAS, файловый сервер Samba и много файловых серверов NFS, как известно, имеет это ограничение.)

  • Задержка сетевого или файлового сервера задерживает прибытие уведомления об изменении так, чтобы изменения не были обнаружены на своевременном базисе.

Когда MATLAB не может получить допустимый или быстро реагирующий Указатель Уведомления об Изменении, он не может автоматически обнаружить изменения в файлах и папках. Например, новые функции, добавленные к затронутой папке, не могут отобразиться, и измененные функции в памяти не могут быть перезагружены.

Управляйте, как MATLAB обнаруживает изменения в файлах и папках

Если MATLAB не может обнаружить изменения в ваших файлах и папках из-за недопустимых или безразличных указателей уведомления об изменении, можно управлять, как MATLAB обнаруживает изменения в папках.

Если ваша файловая система обновляет метки времени папки, когда файлы добавляются к папкам, можно установить систему удаленная политика пути обнаружить изменения путем тестирования меток времени папок. Для этого включайте эти команды в startup.m файл. Для получения дополнительной информации о создании startup.m файл, смотрите опции запуска в Файле Запуска MATLAB.

system_dependent('RemotePathPolicy', 'TimecheckDir');
rehash path;
Вы можете заметить ухудшение эффективности из-за времени, требуемого проверять метки времени.

Если ваша файловая система не обновляет метки времени папки (такие как файловая система NT), можно установить систему удаленная политика пути обнаружить изменения путем перечитывания затронутых папок через короткие интервалы. Для этого включайте эти команды в startup.m файл.

system_dependent('RemotePathPolicy', 'Reload');
rehash path;
Вы можете заметить значительное ухудшение эффективности из-за времени, требуемого перечитывать папки.

Чтобы определить, как MATLAB обнаруживает изменения в папках, используйте эту команду:

system_dependent('RemotePathPolicy', 'Status');

В некоторых случаях обнаружение новых файлов или измененных файлов в папках, затронутых недопустимыми или безразличными указателями уведомления об изменении, не необходимо. Если обнаружение изменений не необходимо, чтобы обеспечить максимальную производительность, можно отключить систему удаленная политика пути. Для этого включайте эти команды в startup.m файл.

system_dependent('RemotePathPolicy', 'None');
rehash path;

Функции clear из памяти

Иногда, изменяя вашу систему удаленная политика пути не является эффективной при предотвращении проблем, связанных с кэшированием удаленной файловой системы или сетевой задержкой. Если MATLAB все еще не может обнаружить изменения, которые вы внесли в функцию, можно очистить старую копию от функции из памяти с помощью clear функция. MATLAB читает обновленную функцию в следующий раз, когда это называется.

Сконфигурируйте предупреждения указателя уведомления об изменении

Чтобы анализировать, какие папки затронуты недопустимыми или безразличными указателями уведомления об изменении Windows, можно сконфигурировать количество предупреждающих сообщений, выпущенных Windows. Для этого включайте одну из этих команд в startup.m файл. Для получения дополнительной информации о создании startup.m файл, смотрите опции запуска в Файле Запуска MATLAB.

  • Покажите предупреждающие сообщения для всех недопустимых или безразличных указателей уведомления об изменении.

    system_dependent('DirChangeHandleWarn', 'Always');

  • Только покажите первое предупреждающее сообщение о недопустимых или безразличных указателях уведомления об изменении.

    system_dependent('DirChangeHandleWarn', 'Once');

  • Никогда не показывайте предупреждающие сообщения о недопустимых или безразличных указателях уведомления об изменении.

    system_dependent('DirChangeHandleWarn', 'Never');

Чтобы определить, когда Windows предупредит о недопустимых или безразличных указателях уведомления об изменении, используйте эту команду.

system_dependent('DirChangeHandleWarn', 'Status');

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

|

Похожие темы