commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (NET-455) FTPClient listFiles(FTPFileFilter) can be faster...
Date Tue, 20 Mar 2012 15:43:40 GMT
FTPClient listFiles(FTPFileFilter) can be faster...
---------------------------------------------------

                 Key: NET-455
                 URL: https://issues.apache.org/jira/browse/NET-455
             Project: Commons Net
          Issue Type: Improvement
          Components: FTP
    Affects Versions: 3.0.1
         Environment: all
            Reporter: Nicolas
            Priority: Minor


I tested two ways of sorting files on a remote FTP server with many files ( > 110 000).
Both of these use the FtpFileFilter class (with a test on the extension filename... very simple).

The first one is the conventionnal => files = ftpClient.listFiles("./", ftpFileFilter);
It takes about 90 seconds ...

the second one is ... nearly as simple as the first one : 
FTPFile []  allFilesListed = ftpClient.listFiles();
files = FTPFileFilterWithExtension.fastFilter(ftpFileFilter, allFilesListed);

The function FTPFileFilterWithExtension.fastFilter() call the same ftpFileFilter :

       public static FTPFile [] fastFilter(FTPFileFilter filter, FTPFile ftpFileArray [])
{
		ArrayList<FTPFile> listOfFTPFiles = new ArrayList<FTPFile>();
		for (FTPFile ftpf : ftpFileArray) {
			boolean accepted = filter.accept(ftpf);
			if (accepted) {
				listOfFTPFiles.add(ftpf);
			}
		}
		FTPFile resultArray [] = new FTPFile[listOfFTPFiles.size()];
		return listOfFTPFiles.toArray(resultArray);
	}
The second method is EIGHT times faster than the first one ... and I don't really understand
why...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message