Сравнительный анализ производительности основных RIA-платформ
Юн Светлана Геннадьевна,
к.т.н., доцент,
Меньшиков Дмитрий Викторович,
Эйхман Евгений Александрович.
Новосибирский государственный
технический университет.
Введение
В настоящее время присутствие различных веб-приложений в сети Интернет стало привычным явлением, а их использование – обычным делом. Но, учитывая современные требования, на смену традиционным технологиям построения веб-приложений приходят технологии, способные совмещать в себе необходимые разработчику и пользователю функции – от разметки и отображения контента до динамической работы с сервером и предоставления мультимедийных возможностей.
RIA (Rich Internet Application) представляют собой веб-приложения, которые обладают функциональностью традиционных настольных приложений. Это позволяет обеспечивать необходимую гибкость и простоту использования. RIA позволяют создавать персонализированные мультимедийно богатые приложения для радикального улучшения пользовательского взаимодействия и более продуктивного решения задач пользователей.
В настоящее время существует четыре основных технологии создания RIA-приложений: Flash, JavaFX, Silverlight и HTML5+JavaScript.
Постановка задачи
Одной из слабых сторон RIA–приложений является более низкая по сравнению с настольными приложениями производительность. Особенно это важно в связи с существенным влиянием фактора производительности на привлекательность программного продукта с точки зрения пользователей. Как правило, производительность веб-приложений зависит от следующих факторов:
· технологии, используемой для их создания;
· типа браузера;
· операционной системы и многих других.
При решении вопроса о выборе технологии реализации интерактивных моделей [1], авторами был проведен сравнительный анализ производительности наиболее распространенных RIA-платформ, учитывающий выше перечисленные факторы.
Тестирование производительности RIA-платформ
Проблемы производительности могут быть вызваны платформами RIA (виртуальной машиной или плагином браузера) или реализацией кода внутри API (Application Programming Interface). При этом с точки зрения разработчика нет причин для написания собственной реализации, если есть хорошо работающий API. Поэтому при сравнении RIA-платформ были рассмотрены следующие варианты реализации тестов:
1) на основе набора готовых классов, процедур и методов, содержащихся во внешних библиотеках (API реализация);
2) на собственных реализациях: при отсутствии сторонних API-операций время интерпретации меньше.
Выделены следующие уровни тестирования:
1) тесты вариантов использования - выявляют сильные и слабые стороны RIA-технологии с точки зрения стандартных операций используемых в работе с RIA-приложениями [1];
2) модульные тесты – оценивают операции, используемые при реализации тех или иных алгоритмов, участвующих в построении стандартных операций (вариантов использования) [2].
Стратегия исследования строилась на поиске узких мест производительности. Выбирались веб-ориентированные сценарии использования, и на основании полученных результатов выявлялись потенциально узкие места. Использованные при анализе тесты представлены в таблице 1.
Таблица 1.
Краткое описание основных тестов вариантов использования.
Тест |
Описание |
Использование API-реализации |
|
Алгоритм кодирования JPEG |
Изменение размера и сжатие изображений по алгоритму JPEG |
Алгоритм хеширования MD5 |
Шифрование текста, проверка подлинности |
Использование собственной реализации |
|
Генерация больших простых чисел |
Используется в криптографии. Например, асинхронные методы для обмена ключами или генерация случайных ключей |
Генерация псевдослучайных ключей |
Используется в криптографии. Например, при проверке актуальности ключей |
Алгоритм RLE |
Кодирование длин серий, алгоритм сжатия без потерь |
Использование 2D графики |
Эффекты масштабирования, затухания и т.д. |
В состав модульных тестов входили тесты для оценки математических операций (сложение, умножение, возведение в степень, получение корня, остатка от деления), операций сравнения (больше, меньше, равно), операций работы со строками (выборка символа, поиск символа, сложение строк, выборка подстроки, выгрузка строки в графический компонент) и операций работы с массивами (выборка элемента, поиск элемента, разделение массива, извлечение последнего элемента).
В качестве сред для испытаний выбраны браузеры Internet Explorer 9, Safari 5, Opera 11, Mozilla Firefox 9, Google Chrome 16. Для получения более достоверных результатов кэширование в браузерах было отключено. Отбор браузеров осуществлялся на основе следующих критериев:
· широко распространены в сегменте СНГ [2];
· поддерживают стандарт HTML5.
Все тесты запускались в операционных системах Windows 7 Professional (32-битная), MacOS X 10.7 Lion (32-битная), Linux Ubuntu 11.04 (32-битная).
Для установки операционных систем использовался программный продукт виртуализации Oracle VM VirtualBox. В качестве платформы-хозяина выступала машина ASUS A72J со следующими параметрами:
· процессор Intel Core i3 M380 (двухядерный), частота 2,53 ГГц;
· оперативная память 4 Гб.
В качестве гостевых платформ были созданы виртуальные машины со следующими характеристиками:
· процессор (одноядерный), частота 2,53 ГГц;
· оперативная память 2 Гб.
Результаты тестирования приведены в таблице 2.
Таблица 2.
Результаты тестирования производительности.
Тесты |
HTML5+JavaScript |
Flash |
JavaFX (отсутствие
плагина Mac OS X – Google Chrome и |
Silverlight (отсутствие плагина Linux - Opera) |
Генерация простых чисел |
Допустимо |
Низкая оценка |
Низкая оценка |
Лучшая оценка |
JPEG кодирование |
Допустимо (Windows и MacOS X) |
Низкая оценка |
Допустимо (Linux) |
Допустимо (Linux) |
Алгоритм хеширования MD5 |
Низкая оценка |
Допустимо |
Лучшая оценка |
Лучшая оценка |
Генерация псевдослучайных ключей |
Низкая оценка |
Низкая оценка |
Допустимо (MacOS X)
|
Допустимо (Windows и Linux) |
Алгоритм RLE |
Лучшая оценка |
Допустимо |
Низкая оценка |
Низкая оценка |
Использование 2D графики |
Допустимо |
Лучшая оценка |
Нельзя оценить |
Низкая оценка |
Управление памятью и уборка мусора |
Допустимо |
Лучшая оценка |
Нельзя оценить |
Низкая оценка |
Работа строковых операций |
Низкая оценка |
Лучшая оценка |
Низкая оценка |
Низкая оценка |
Обработка массивов |
Лучшая оценка |
Лучшая оценка |
Низкая оценка |
Низкая оценка |
Работа операций сравнения |
Низкая оценка |
Низкая оценка |
Допустимо (MacOS X) |
Допустимо (Windows и Linux) |
Работа математических операций |
Низкая оценка |
Допустимо (Windows) |
Допустимо (MacOS X) |
Лучшая оценка
|
Модульное тестирование всех основных операций |
Допустимо (MacOS X и Linux) |
Лучшая оценка |
Низкая оценка |
Допустимо (Windows) |
Заключение
По результатам тестирования можно сделать следующие выводы.
Алгоритмы, применяемые в области криптограции (генерация простых чисел, алгоритм хеширования MD5, генерация псевдослучайных ключей) показывают лучшие результаты, когда они реализованы при помощи технологии Silverlight. И удовлетворительные результаты при реализации алгоритмов на JavaFX.
При использовании алгоритмов сжатия текста и изображений (алгоритмы RLE и JPEG) предпочтительней применять технологию HTML5+JavaScript.
Двумерные графические модели, реализуемые при помощи технологии Flash, обладают большей скоростью. Кроме этого технология имеет лучшие механизмы управления памятью, что подтверждает модульное тестирование (использование ресурсоемких операций работы со строками и массивами).
Для наших задач, связанных с построением интерактивных демонстраций и моделей наилучшим решением является технология Flash.
Литература
1. Меньшиков Д. В. Основные подходы к разработке системы построения виртуальных моделей и демонстраций / Д. В. Меньшиков, Е. А. Эйхман, С. Г. Юн // Новые образовательные технологии в вузе (НОТВ – 2011): сб. материалов восьмой междунар. науч.-метод. конф., 2–4 февр. 2011 г. – Екатеринбург: УрФУ, 2011. – С. 373-378.
2. Трофимов С. Варианты использования (Use case). [Электронный ресурс]: Портал Computer-Aided Software Engineering Club. - Режим доступа: http://www.caseclub.ru/articles/use_case.html.
3. Программирование из песочницы [Электронный ресурс]: Сравнительное тестирование производительности платформ .Net, Java и Mono. – Режим доступа: http://gliffer.ru.
4. Сайт LiveInternet. [Электронный ресурс]: Статистика и дневники, почта и поиск. – Режим доступа: http://www.liveinternet.ru/stat/ru/.
Поступила в редакцию 18.05.2012 г.