使用FTP测试文件上传和下载速度

Tom*_*man 9 java ftp

我正在使用java在桌面应用程序中工作.在我的应用程序中,我必须执行速度测试,它将显示文件上传和下载速度.

对于上传测试,我将一个小测试文件上传到FTP服务器,并根据我计算文件上传速度所花费的时间.同样我正在下载测试文件格式服务器并计算下载速度.

但是我得到的结果与实际的FTP文件上传和下载速度不匹配.似乎与FTP服务器的建立连接正在增加时间,因此我计算的结果速度较小.

这是我正在使用的文件上传代码:

     public int getTransferRate(File filename)
     {          
       int trRate = 0;

       try {

        OutputStream fout = null;
        InputStream bin = null;

        connect(ftpUser,ftpPass,ftpServer);


        ftp.setFileType(FTPSClient.BINARY_FILE_TYPE);
        ftp.enterLocalPassiveMode();
        fout = ftp.storeFileStream("testuploadfile");

        bin = new FileInputStream(filename);
        byte[] b = new byte[8192];
        int bytesRead = 0;

        long startTime = System.currentTimeMillis();
        long endTime = 0;
        while ((bytesRead = bin.read(b)) != -1) {
            fout.write(b, 0, bytesRead);
            bytesUploadedSet += bytesRead;
        }
        endTime = System.currentTimeMillis();
        trRate = (int) ((float) bytesUploadedSet / (endTime - startTime));

    } catch (IOException ex) {
        Logger.getLogger(FTPFileStorageService.class.getName()).log(Level.SEVERE, null, ex);
    }
    return trRate;
}
Run Code Online (Sandbox Code Playgroud)

你能建议任何链接或某种方式来获得最近的上传和下载速度.

我感谢您的宝贵建议.

Mah*_*esh 1

首先,filezilla 可能使用本机代码,这比您正在使用的代码更快。

为了进行测试,建立连接并尝试上传许多文件,大约 20 个左右..这应该可以很好地了解结果..通常,还将输出记录到逗号分隔的测试文件或其他文件中,您可以稍后将其导入到超越并分析。如果你想做一些硬核性能测试,你可以使用 JMeter 之类的东西。

在任何类型的性能测试中,具有大样本量(大量样本结果)都会给出最准确的结果。

http://jmeter.apache.org/