OpenSCADAWiki: Works/Tests/VCA
 

Тестирование производительности среды визуализации


Содержатся тесты компонентов среды визуализации и управления (СВУ) с анализом, выводами и мероприятиями.

Contents

Vision


23.08.2007
Основание: Наиболее ответственным, в вопросе производительности, является взаимодействие между моделью данный СВУ и визуализаторами, а также циклы обслуживания интерактивного взаимодействия и обновления. Данный вопрос приобретает ещё большее значение в свете того, что для взаимодействия визуализаторов с моделью данных СВУ используются слабые связи, а именно события основанные на XML-запросах, которые потенциально медленнее прямых связей. Однако возможность последующего перенаправления потока данных взаимодействия на сетевые транспортные протоколы, а также более высокая надёжность такого взаимодействия оправдывают усилия по оптимизации этого взаимодействия.
Условия: Основными объектами оптимизации являются: цикл обновления визуализатора "Vision" и цикл обсчёта сеанса на стороне модели данных СВУ. Замер временных интервалов выполнялся на вычислительной машине Athlon 64 3000+, с пониженной до 800МГц частотой процессора и тестовой странице.

Процесс Исходное время (мс) Результирующее время (мс) Комментарии
Цикл обновления визуализатора "Vision"
Полный секундный цикл обновления 43 10
Обработка списка открытых окон 2.3 2.2 Незначительное улучшение за счёт выделение функции запроса перечня открытых окон в сервисные функции быстрого доступа.
Обновление открытых страниц 41 9
Запрос атрибутов 24 7 Значительно сократилось за счёт введения общего счетчика модификации виджета и вынос запроса на обновления списка не пользовательских атрибутов в цикл обсчёта сеанса.
Вызов функции setAttr(), для полученных атрибутов 19 2 Значительно сократилось за счёт пересмотра и доработки примитива "ElText".
Цикл обсчета сеанса пользовательского интерфейса модели данных СВУ.
Полный цикл вычисления 53 21 Значительно сократилось, за счёт пересмотра последовательности вычисления виджета и уменьшения периодичности обновления списка: слинкованых атрибутов и активных дочерних виджетов.

11.07.2008
Основание: Для оценки потенциальных возможностей по производительности среды визуализации, а также с целью повышения производительности и возможности создания мнемосхем с большим количеством виджетов была проведена оптимизация визуализации виджетов, как в режиме разработки, так и в режиме исполнения.
Условия: Замер временных интервалов выполнялся на вычислительной машине Pentium 4 3200.

Процесс Исходное время (мс) Результирующее время (мс) Комментарии
160 эллиптических дуг по одной в каждом виджете с радиусами по 20 пискселов и толщиной линии, равной 1 Загрузка: 497; Инициализация, отрисовка: 355 Загрузка: 333; Инициализация, отрисовка: 273
160 эллиптических дуг по одной в каждом виджете с радиусами по 20 пискселов и толщиной линии, равной 1 с заливкой в каждой Загрузка: 492; Инициализация, отрисовка: 1379 Загрузка: 326; Инициализация, отрисовка: 470
160 эллиптических дуг по одной в каждом виджете с радиусами по 20 пискселов и толщиной линии, равной 1 с заливкой в каждой и с масштабом страницы, на которой лежат эти 160 виджетов, равным 0.5 по X и по Y Загрузка: 495; Инициализация, отрисовка: 1430 Загрузка: 334; Инициализация, отрисовка: 452 Как видно, присутствие масштабных коэффиуиентов, не равных 1, существенно не влияет ни на загрузку, ни на инициализацию и отрисовку.
160 линий по одной в каждом виджете, длиной 40 и тощиной 10 пикселов Загрузка: 451; Инициализация, отрисовка: 70 Загрузка: 315; Инициализация, отрисовка: 5
160 прямоугольников по одном в каждом виджете, длиной 40, шириной 10 и толщиной линии 1 пиксел с заливкой в каждом Загрузка: 486; Инициализация, отрисовка: 175 Загрузка: 336; Инициализация, отрисовка: 38
240 линий по 20 в каждом виджете(всего 12 виджетов), толщной 10 и длиной, приблизительно равной 50 пикселов Загрузка: 58; Инициализация, отрисовка: 53 Загрузка: 30; Инициализация, отрисовка: 8 Время и до и после оптимизации значительно меньше в сравнении с одной линией в одном виджете (всего 160 линий) за счёт уменьшения количества виджетов
240 четырехугольников с заливкой, шириной примерно 15 и длиной примерно 50 пикселов и с толщиной линии в 1 пиксел по 20 в каждом виджете (всего 12 виджетов) Загрузка: 95; Инициализация, отрисовка: 272 Загрузка: 42; Инициализация, отрисовка: 93


WebVision

20.06.2013:
Основание: При работе с платой MOPSlcdLX внимание привлекла большая нагрузка задачи формирования полноразмерных трендов. Как в последствии выяснилось большую нагрузку создаёт формирование изображение PNG в библиотеке GD2, а точнее процедура упаковки ZLib. Предметный анализ производительности формирования изображений различных форматов на указанной плате сведён в таблице ниже:
Формат Построение тренда (мс) Преобразование в формат. изображения (мс) Размер изображения (байт)
PNG (0) 200 800 1700365
PNG (1) 200 690 24000
PNG (-1) 200 1000 14800
PNG (9) 200 1900 13354
JPEG (-1) 200 180 53157
GIF 200 380 14300

Выводы: Как можно видеть из таблицы выше операция формирования PNG в целом ресурсоёмка и наиболее оптимальным уровнем сжатия является "1". В тоже время формирование JPEG и GIF заметно быстрее, однако эти форматы изображений имеют рядя критических недостатков, а именно: JPEG не имеет альфа канала (прозрачности), а GIF ограничен количеством цветов, что в обоих случаях приводит к потере прозрачности и искажению сглаживания текста и изображения в целом.

Мероприятия: Добавлена возможность выбора уровня сжатия для формируемых изображений PNG, а значение по умолчанию установлено в оптимальный уровень "1". Запланирована реализация формирования примитива "Диаграмма" на стороне браузера в тегах "svg" или "canvas".