Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WatchService和文件系统轮询_Java_Performance_File_Filesystems - Fatal编程技术网

Java WatchService和文件系统轮询

Java WatchService和文件系统轮询,java,performance,file,filesystems,Java,Performance,File,Filesystems,Java追踪表明 此API不是为索引硬盘驱动器而设计的。Most文件系统 实现对文件更改通知具有本机支持。这个 Watch Service API在可用的情况下利用了这种支持。 但是,当文件系统不支持此机制时,监视 服务将轮询文件系统,等待事件 我的问题: 如果监视的目录不是根目录(某些子目录),并且文件系统不支持I/O事件通知,因此WatchService实现正在轮询文件系统,那么这种轮询是会降低整个系统的速度,还是只会降低侦听应用程序的速度 或者,换句话说,考虑到需要服务执行轮询以检测更改的

Java追踪表明

此API不是为索引硬盘驱动器而设计的。Most文件系统 实现对文件更改通知具有本机支持。这个 Watch Service API在可用的情况下利用了这种支持。 但是,当文件系统不支持此机制时,监视 服务将轮询文件系统,等待事件

我的问题:

如果监视的目录不是根目录(某些子目录),并且文件系统不支持I/O事件通知,因此
WatchService
实现正在轮询文件系统,那么这种轮询是会降低整个系统的速度,还是只会降低侦听应用程序的速度

或者,换句话说,考虑到需要服务执行轮询以检测更改的文件系统,是否存在一些阈值(目录深度、文件量等),在这些阈值中,使用此技术会成为系统性能方面的一个问题(开始显著影响OS性能)


注意:我知道,监视高度变化的目录将影响应用程序响应事件和需要更多CPU的繁忙程度,而不管文件系统轮询not。我对监视系统数据文件夹(例如,用户的文档目录)更感兴趣。

与常规文件系统/OS操作一样:文件系统基本上是顺序的,即文件系统上的任何操作都必须等待以前的操作完成后才能完成。基于此,在文件系统上进行任何类型的轮询都会降低速度。效果将取决于FS的使用情况,不仅取决于此过程,还取决于其他程序和系统本身。