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

MATLAB® использует названные указатели уведомления об изменении функции операционной системы Windows®, чтобы обнаружить, когда файлы в связанной папке изменяются. При определенных обстоятельствах 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');

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

|

Похожие темы

Была ли эта тема полезной?