Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 SmbFile检查Samba目录是否存在()需要很长时间_Java_Performance_Samba_File Exists - Fatal编程技术网

Java SmbFile检查Samba目录是否存在()需要很长时间

Java SmbFile检查Samba目录是否存在()需要很长时间,java,performance,samba,file-exists,Java,Performance,Samba,File Exists,我有一段代码将Java文件写入虚拟服务器上的共享Samba文件夹,但我有一个性能问题 我的代码做的第一件事是检查Samba文件夹是否存在。如果是,它将实例化要写入的文件。然后更多不相关的事情发生了 如果我检查我的日志文件,在实例化的目标samba目录…和检查文件是否已经存在…之间总是有6秒钟的时间。这意味着if(!destination.exists)需要6秒,这看起来非常长,因为if(smbOutputFile.exists))甚至不需要1秒。(在我的测试用例中,它们都存在) 这个性能问题的任

我有一段代码将Java文件写入虚拟服务器上的共享Samba文件夹,但我有一个性能问题

我的代码做的第一件事是检查Samba文件夹是否存在。如果是,它将实例化要写入的文件。然后更多不相关的事情发生了

如果我检查我的日志文件,在
实例化的目标samba目录…
检查文件是否已经存在…
之间总是有6秒钟的时间。这意味着
if(!destination.exists)
需要6秒,这看起来非常长,因为
if(smbOutputFile.exists))
甚至不需要1秒。(在我的测试用例中,它们都存在)

这个性能问题的任何因素是什么?有没有办法加快速度

SmbFile destinationShare = new SmbFile(sambaDestinationPath, destinationAuthentication);
logger.info("Instantiated destination samba directory : " + destinationShare);

if (!destinationShare.exists()) { //destinationShare = a directory 
    destinationShare.mkdir();
    logger.debug("Shared directory created");
}

smbOutputFile = new SmbFile(sambaDestinationPath + filename, destinationAuthentication);

logger.debug("Checking if the file already exists and rename it to '.old'");
if (smbOutputFile.exists()) { //smbOutputFile = a file 
    //Do something 
}

谢谢

仅供参考,我还使用了我在另一个使用不同Samba共享的应用程序中编写的这个类,它工作正常,只需不到1秒的时间,而不是6秒。所以我不确定这是否直接是Java问题,而是Samba或服务器问题。我认为这是一个相当模糊的问题。由于您使用不同的Samba共享进行了尝试,导致执行时间不到一秒,因此我认为这与代码无关。您测试的两个Samba共享是否位于不同的服务器上?如果是这样,其中一台服务器的负载可能比另一台服务器更重。你试过Ping每台服务器吗?@TomNijs Ping到慢服务器的主机名=2ms&Ping到另一台=