Измерение
производительности
мобильных
приложений
Д.Н. Крюков,
студент 4-го курса, специальность «Информационные системы и технологии»
К.А. Попова,
студентка 4-го курса, специальность «Информационные системы и технологии»
Е.Е. Мангушева,
студентка 4-го курса, специальность «Информационные системы и технологии»
Рынок мобильных устройств является одним из самых динамично развивающихся в настоящее время. По этой причине рынок мобильных приложений переполнен большим количеством программ, похожих друг на друга. Сейчас уже трудно выпустить уникальное по своему предназначению приложение, которое могло бы заинтересовать и привлечь пользователей. А так как запросы владельцев мобильных устройств постоянно растут, то необходимо учитывать и производительность разрабатываемых мобильных приложений. Сейчас скорость работы может сыграть решающую роль для пользователя при выборе того или иного мобильного приложения.
Описание задачи
Требуется решить задачу измерения производительности работы мобильного приложения. Приложение выполняет поиск фотографий по введенным ключевым словам.
Пользователь на своем мобильном устройстве выполняет поиск фотографий по выбранным ключевым словам. На основе его выбора формируется запрос, который отсылается на сервер. Сервер рассылает полученный запрос на различные мобильные устройства и ожидает ответа с результатами выполнения запроса. После получения ответа он пересылает его пользователю. Требуется выполнить следующие задачи:
37
- отслеживание времени ожидания пользователем ответа на свой запрос;
- установка предельного значения времени, в течение которого сервер может ожидать ответа от мобильных устройств. Если это значение превышено, то сервер прекращает прием ответов.
Проверка времени ожидания
Для описания работы проверки времени ожидания сервером ответа от ИМУ необходимо дать краткое описание принципа работы серверного приложения.
Как только сервер получает запрос от пользователя, он рассылает его другим мобильным устройствам и начинает отсчет времени. Максимальное значение времени устанавливается равное 10 секундам. В течение этого времени сервер осуществляет прием ответов от мобильных устройств. Если все мобильные устройства прислали ответ раньше, чем истекло 10 секунд, то сервер формирует и отсылает ответ пользователю. Если же значение времени достигло своего предельного значения и еще не все устройства прислали ответ, то сервер заканчивает прием сообщений от мобильных устройств и формирует ответ пользователю на основе тех данных, что он получил.
Блок-схема алгоритма работы серверного приложения с проверкой времени ожидания ответа от мобильных устройств представлена на рис. 1.
Пример организации отслеживания времени ожидания сервером ответа от мобильных устройств показан на листинге 1.
// Создание объекта запроса var xml = new XMLHttpRequest();
// Установление максимального времени ожидания ответа в 10
секунд
var timeoutLength = 10000;
// Переменная для отслеживания успешного выполнения запроса var requestDone = false;
// Инициализация функции обратного вызова, которая будет запущена через 10 секунд, отменяя запрос (если он не будет к тому времени выполнен)
setTimeout(function(){
requestDone = true;
}, timeoutLength);
// Отслеживание обновления состояния документа xml.onreadystatechange = function(){
// Ожидание загрузки данных и проверка, не истекло ли время
запроса
if ( xml.readyState == 4 && !requestDone ) {
38
// Подчистка для экономии пространства памяти xml = null;
}
};
// Установка соединения с сервером xml.send();
Листинг 1. Проверка истечения времени ожидания ответа сервером
Рис. 1. Блок-схема алгоритма работы с проверкой времени
Выполнение такой проверки необходимо потому, что иногда мобильные устройства по той или иной причине не отвечают на запрос. В таком случае ожидание сервером ответа от этих устройств может сильно затянуться. Соответственно, пользователь будет ждать ответа на свой запрос довольно долгое время, что не оправдывает его ожиданий от приложения. Поэтому установление предельного значения вре-
39
мени гарантирует, что пользователь не будет ждать дольше определенного времени, что является плюсом при разработке приложения.
Вывод
Отслеживание и ограничение времени ожидания пользователем ответа играет важную роль при разработке того или иного мобильного приложения. Скорость работы приложения является одной из определяющих составляющих программы, на которые обращает внимание пользователь. Медленная работа, повисание сервера и другие проблемы, связанные со скоростью работы приложения, могут плохо повлиять на оценку и восприятие разработанной программы.
40