bertrandmartel / speed-test-lib

:cloud: JSpeedTest : speed test client library for Java/Android
MIT License
381 stars 119 forks source link

report.getReportTime() is not correct #82

Open rtz333 opened 3 years ago

rtz333 commented 3 years ago

report.getReportTime() is very high. can anyone help me fix it. i dont know what wrong?

public class SpeedTestTask extends AsyncTask<Void, Void, String> { SpeedTestSocket speedTestSocket = new SpeedTestSocket();

    @Override
    protected String doInBackground(Void... params) {

        // add a listener to wait for speedtest completion and progress
        speedTestSocket.addSpeedTestListener(new ISpeedTestListener() {

            @Override
            public void onCompletion(SpeedTestReport report) {
                // called when download/upload is finished
                if (report.getStartTime()>0){
                    int millis = (int) (report.getReportTime() - report.getStartTime());
                    Log.d("speedtest", "getTime: " + String.format("%02d min, %02d sec",
                            TimeUnit.MILLISECONDS.toMinutes(millis),
                            TimeUnit.MILLISECONDS.toSeconds(millis) -
                                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
                    ));
                }

                Log.v("speedtest", "[COMPLETED] rate in octet/s : " + report.getTransferRateOctet());
                Log.v("speedtest", "[COMPLETED] rate in bit/s   : " + report.getTransferRateBit());

                Log.d("speedtest", "getDownloadSetupTime: " + (report.getReportTime() - report.getStartTime()) / 1000 + " s");
            }

            @Override
            public void onError(SpeedTestError speedTestError, String errorMessage) {
                // called when a download/upload error occur
                Log.d("speedtest", "onError: ");
            }

            @Override
            public void onProgress(float percent, SpeedTestReport report) {
                // called to notify download/upload progress
                Log.v("speedtest", "[PROGRESS] progress : " + percent + " % " + " getTotalPacketSize " + report.getTotalPacketSize());
                Log.v("speedtest", "[PROGRESS] rate in octet/s : " + report.getTransferRateOctet());
                Log.v("speedtest", "[PROGRESS] rate in bit/s   : " + report.getTransferRateBit());
                Log.d("speedtest", "getDownloadSetupTime:onProgress " + (report.getReportTime() - report.getStartTime()) / 1000 + " s");

                Log.d("speedtest", "getStartTime: " + report.getStartTime()/1000);
                Log.d("speedtest", "getReportTime: " + report.getReportTime()/1000);

            }
        });

        speedTestSocket.startDownload("http://ipv4.ikoula.testdebit.info/1M.iso");

        return null;
    }
}

Here is log: V/speedtest: [PROGRESS] progress : 100.0 % getTotalPacketSize 1000000 V/speedtest: [PROGRESS] rate in octet/s : 699007.4095 V/speedtest: [PROGRESS] rate in bit/s : 5592059.2760 D/speedtest: getDownloadSetupTime:onProgress 1430592 s D/speedtest: getStartTime: 102374643701 D/speedtest: getReportTime: 102376074293 D/speedtest: getTime: 23856 min, 17 sec V/speedtest: [COMPLETED] rate in octet/s : 698616.7389 V/speedtest: [COMPLETED] rate in bit/s : 5588933.9112 D/speedtest: getDownloadSetupTime: 1431377 s

RJSDevel commented 2 years ago

The same