Я делаю вызов api для отдыха с устройства Android и был очень удивлен, глядя на разницу скоростей по сравнению с ПК. Ниже приведено изображение из инструмента отдыха на ПК.
Я попробовал несколько библиотек, таких как Retrofit, Volley, а также обычную задачу Async, чтобы сделать тот же самый вызов для отдыха с устройства Android и заметил следующее время ответа.
(Response times with Retrofit library (Time includes converting json data to java objects)).
Test 1: 8372 Ms
Test 2: 7715 Ms
Test 3: 7686 Ms
Test 4: 10128 Ms
Test 5: 7876 Ms
(Response times with Volley. No conversion to Java Objects from Json Data )
Test 1: 6721 MS
Test 2: 6610 MS
Test 3: 6287 MS
Test 4: 6118 MS
Test 5: 6118 MS
Я взял System.currentTimeMillis()
перед тем, как позвонить, и после получения ответа и вычитал эти значения, чтобы получить время отклика в программе Android.
Было бы очень полезно, если кто-то может показать мне, как уменьшить время отклика в андроиде.
FYI: я нахожусь на Wi-Fi и использую ту же сеть как для своего ПК, так и для Android-устройств.
Вот обновленный Android-код
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ENDPOINT)
.build();
WeatherApi weatherApi = adapter.create(WeatherApi.class);
startTime = System.currentTimeMillis();
weatherApi.getWeather(location.getLatitude(),location.getLongitude(),new Callback<WeatherInfo>() {
@Override
public void success(WeatherInfo arg0, Response arg1) {
endTime = System.currentTimeMillis();
Log.d("TAG",endTime-startTime + ":Millisecs");
setWeatherInfo(arg0);
if(weatherDialog != null && weatherDialog.isShowing())
weatherDialog.dismiss();
}