ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

Сравнительный анализ производительности основных 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 и
Linux - Opera)

Silverlight

(отсутствие плагина Linux - Opera)

Генерация простых чисел

Допустимо
использование

Низкая оценка

Низкая оценка

Лучшая оценка

JPEG кодирование

Допустимо
использование

(Windows и MacOS X)

Низкая оценка

Допустимо
использование

(Linux)

Допустимо
использование

(Linux)

Алгоритм хеширования MD5

Низкая оценка

Допустимо
использование

Лучшая оценка

Лучшая оценка

Генерация псевдослучайных ключей

Низкая оценка

Низкая оценка

Допустимо
использование

(MacOS X)

 

Допустимо
использование

(Windows и Linux)

Алгоритм RLE

Лучшая оценка

Допустимо
использование (MacOS X)

Низкая оценка

Низкая оценка

Использование 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 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.