文档

排除无效或无响应故障窗户更改通知句柄

MATLAB®使用Windows®操作系统特性称为更改通知句柄检测关联文件夹中的文件何时被修改。在某些情况下,Windows无法向MATLAB提供有效的或响应性的更改通知句柄。导致无效或无响应的更改通知句柄的三个最常见原因是:

  • Windows已经耗尽了通知句柄的供应。

  • 指定的文件夹位于不支持更改通知的文件系统上。金宝appTAS文件服务器、SAMBA文件服务器和许多NFS文件服务器都有这个限制。

  • 网络或文件服务器延迟更改通知的到达,因此无法及时检测到更改。

当MATLAB无法获得有效的或响应性的更改通知句柄时,它无法自动检测文件和文件夹的更改。例如,添加到受影响文件夹的新函数可能不可见,内存中更改的函数可能无法重新加载。

控制如何MATLAB检测文件和文件夹的更改

如果MATLAB由于无效或无响应的更改通知句柄而无法检测对文件和文件夹的更改,您可以控制MATLAB如何检测文件夹中的更改。

如果文件系统在将文件添加到文件夹时更新文件夹时间戳,则可以设置系统远程路径策略,通过测试文件夹的时间戳来检测更改。方法中包含这些命令startup.m文件。有关创建对象的详细信息startup.m文件的更多信息,请参考MATLAB启动文件中的启动选项

system_dependent (“RemotePathPolicy”“TimecheckDir”);重新处理路径
您可能会注意到由于检查时间戳所需的时间而导致性能下降。

如果您的文件系统没有更新文件夹时间戳(例如NT文件系统),您可以设置系统远程路径策略,通过经常重读受影响的文件夹来检测更改。方法中包含这些命令startup.m文件。

system_dependent (“RemotePathPolicy”“重新加载”);重新处理路径
您可能会注意到,由于重新读取文件夹所需的时间,性能显著下降。

要确定MATLAB如何检测文件夹中的更改,请使用以下命令:

system_dependent (“RemotePathPolicy”“状态”);

在某些情况下,检测受无效或无响应的更改通知句柄影响的文件夹中的新文件或更改文件是不必要的。如果不需要检测更改,为了提供最大性能,可以禁用系统远程路径策略。方法中包含这些命令startup.m文件。

system_dependent (“RemotePathPolicy”“没有”);重新处理路径

从内存中清除函数

有时,更改系统远程路径策略不能有效防止与远程文件系统缓存或网络延迟相关的问题。如果MATLAB仍然无法检测您对函数所做的更改,则可以使用清晰的函数。MATLAB在下次调用更新后的函数时读取该函数。

配置变更通知句柄警告

若要分析哪些文件夹受到无效或无响应的Windows更改通知句柄的影响,您可以配置Windows发出的警告消息的数量。方法中包含这些命令之一startup.m文件。有关创建对象的详细信息startup.m文件的更多信息,请参考MATLAB启动文件中的启动选项

  • 显示所有无效或无响应的更改通知句柄的警告消息。

    system_dependent (“DirChangeHandleWarn”“总是”);

  • 只显示关于无效或无响应的更改通知句柄的第一个警告消息。

    system_dependent (“DirChangeHandleWarn”“一次”);

  • 永远不要显示关于无效或无响应的更改通知句柄的警告消息。

    system_dependent (“DirChangeHandleWarn”“永远”);

要确定Windows何时对无效或无响应的更改通知句柄发出警告,请使用此命令。

system_dependent (“DirChangeHandleWarn”“状态”);

另请参阅

|

相关的话题