Тестирование обновленных контроллеров Crestron и AMX

Не так давно оба ведущих производителя обновили линейки центральных контроллеров систем управления. Crestron анонсировал контроллеры 3-Series в 2013, AMX анонсировал контроллеры линейки NX в 2014 году. Прошло какое-то время до того, как эти контроллеры начали реально поставляться и еще небольшое время до того, как контроллеры предыдущего поколения постепенно исчезли из прайс-листов. Сейчас можно уверенно сказать, что обновление линеек однозначно завершено. Настало время оценить как старые, так и новые контроллеры в нескольких тестах.

1. УЧАСТНИКИ ТЕСТИРОВАНИЯ

В тестировании участвовало 4 контроллера. Это младшие контроллеры предыдущего и текущего поколений каждого производителя. Для удобства здесь и далее они будут упоминаться в алфавитном порядке:

  • AMX NI-700;
  • AMX NX-1200;
  • Crestron MC3;
  • Crestron QM-RMC.
IMG_20170325_184412

участники тестирования

2. АППАРАТНЫЕ ХАРАКТЕРИСТИКИ

Прежде чем проводить тестирование, хотелось бы понять, как изменились аппаратные характеристики тестируемых железок. И вот тут главное разочаровние в том, что производители совершенно не расположены указывать хоть какую-то информацию о начинке своих решений. Единственный способ что-то понять - разобрать каждый контроллер и искать информацию по маркировкам чипов. Что мне собственно и пришлось сделать:

Таблица с результатами ниже:

AMX NI-700 AMX NX-1200 Crestron MC3 Crestron QM-RMC
поколение предыдущее текущее текущее предыдущее
процессор AMCC PowerPC PPC405EP Freescale MCIMX502CVK8B Freescale MCIMX31DVKN5D Freescale Coldfire MCF5272VM66
архитектура процессора PowerPC 4xx ARMv7-A
(Cortex-A8)
ARMv6
(ARM1136JF-S)
Coldfire V2
данные процессора 1 ядро, 32 бита,
~166 МГц
1 ядро, 32 бита,
800 МГц
1 ядро, 32 бита,
532 МГц
1 ядро, 32 бита,
66 МГц
операционная система Wind River VxWorks Wind River Linux Microsoft Windows Embedded CE 6.0 Pro ?

Как видим, каждый производитель нарастил мощность процессора. С одной стороны, тактовая частота выросла в 5-8 раз. С другой стороны, мне совершенно не ясно, почему производители выбрали такие старые модели процессоров с настолько небольшой абсолютной тактовой частотой и всего 1 ядром? Также не ясно, насколько "сожрется" итоговая производительность контроллеров новыми (очевидно намного более требовательными) операционными системами? Значит пора переходить к тестам.

3. ТЕСТИРОВАНИЕ

Перед началом тестирования я обновил все ПО на ноутбуке и все прошивки всех контроллеров на последние доступные.

3.1 Тест вычислительной мощности

Для теста я написал программу, которая вычисляет хеш-функцию MD5 от фразы "Hello World!" и далее от результата выполнения предыдущей функции в цикле. Данные вычисления требуют громадного числа арифметических, битовых и сдвиговых операций над целыми числами. Количество вычисленных хешей в секунду приведено в диаграмме ниже:

ControllersTestMD5

количество вычисленных хешей MD5 в секунду

Что видим:

  • новый контроллер AMX не сильно прибавил в производительности относительно предыдущего;
  • новый контроллер Crestron мощнее предыдущего в 3 с лишним раза;
  • в целом контроллеры Crestron лучше оптимизированы для арифметических, битовых и сдвиговых операций над целыми числами.

Также есть впечатление, что программы AMX компилируются не в исполняемый код, а в некий промежуточный байт-код, в то время, как программы Crestron скорее всего исполняются непосредственно.

Также не могу не отметить, что в любом случае вычислительная мощность всех протестированных контроллеров ужасающе низкая. Для сравнения, программа на Qt, запущенная на 1 ядре процессора Intel i7 частотой 2.2 ГГц, вычисляет функцию MD5 примерно 870 тыс. раз в секунду, т.е. в 3600 раз быстрее, чем Crestron MC3...

3.2 Тест скорости порта Ethernet

Для теста я выложил на сетевой накопитель файл, размером порядка 10 Мб. Программа на контроллере скачивала данный файл по протоколу HTTP, полученные данные никак не обрабатывались, буфер полученных данных очищался с максимально возможной скоростью. Скорость скачивания в кБ/с диаграмме ниже:

ControllersTestEthernet

скорость скачивания файла по сети, кБ/с

Что видим:

  • контроллеры AMX имели и имеют высокую производительность сетевого интерфейса, в т.ч. это вызвано тем, что производительная локальная сеть заложена в саму архитектуру системы для прозрачного межпроцессорного взаимодействия;
  • старые контроллеры Crestron практически не умеют работать с сетью и, насколько я понимаю, сеть в них встроена искусственно (в т.ч. часть контроллеров 2 поколения исполнялись вообще без сетевого интерфейса);
  • новые контроллеры Crestron показывают полноценную производительность сетевого интерфейса, но контроллеры AMX все равно немного впереди.

Тут также не имеет никакого смысла сравнивать скорость работы сети с аналогичной для ПК. Современные компьютеры при проводном соединении умеют использовать полную пропускную способность сети 1 Гбит/с (давно стандарт любых современных ПК / ноутбуков), т.е. примерно в 70 раз быстрее AMX NX-1200.

3.3 Тест производительности в реальной задаче

Данную задачу мне подкинул друг, который очень любит показывать в интерфейсе сенсорной панели текущие уровни звука - т.н. метры. Возможно, это даже бывает полезно, хотя по-большей части просто красиво. В любом случае, друг выяснил, что такой функционал сильно нагружает контроллеры, в т.ч. и современные.

Для тестирования я написал программу для ПК, которая генерирует траффик, аналогичный траффику аудиомикшера Biamp Tesira. Программа имитирует режим связи "verbose mode off" и делает рассылку измерений по 16 каналам с идентификаторами подписки "mtro1" - "mtro16":

meters trafiic

пример сгенерированного траффика

Полученный траффик принимается контроллером, делится на отдельные пакеты, каждый пакет обрабатывается и данные выводится в интерфейс планшета iPad New (3 поколения) соответственно в программу AMX TPControl / Crestron App. На iPad нарисован интерфейс из 16 уровней, рассматривая которых можно понять, когда наступает предел как по визуальной составляющей (появляются пропуски и зависания), так и по переполнению буфера контроллера (после прекращения траффика уровни еще продолжают меняться). Тест нагружает контроллер сразу несколькими задачами: приемом непрерывного потока данных по сети Ethernet, обработкой данных в буфере (поиск строк, вычленение строк, преобразования строка - число), взаимодействием с интерфейсом пользователя на iPad:

Результаты тестирования:

ControllersTestMeters

количество обрабатываемых измерений / сек. (для каждого контроллера сверху - различимых на iPad, снизу - не вызывающих переполнения буфера)

Что видим визуально:

  • программа AMX TPControl хорошо показывает только до 90 измерений / сек, при превышении этого числа начинаются пропуски (возможно это результат кеширования данных в контроллере или в самой программе TPControl, возможно также, что это результат сильной буферизации графики);
  • программа Crestron App хорошо показывает до 200 измерений /сек. (и скорее всего, это просто предел производительности самого планшета iPad 3 при работе программы Crestron App).

Что видим в контроллерах:

  • оба контроллера AMX способны переварить намного больше измерений / сек., чем могут показать в интерфейсе iPad 3;
  • даже устаревший NI-700 заметно обгоняет новый MC3 (вероятно, это связано с изначально хорошей работой с сетью Ethernet);
  • новый NX-1200 в свою очередь заметно быстрее старого NI-700;
  • оба контроллера Crestron способны переварить лишь немного больше измерений / сек., чем могут показать в интерфейсе iPad 3;
  • новый MC3 лишь немного быстрее старого QM-RMC в этой задаче.

Советы программистам, которые хотят показать уровни сигналов на сенсорной панели:

  • обрабатывайте абсолютно всю обратную связь от микшера строго в 1 месте программы;
  • старайтесь назначать идентификаторы данных так, чтобы соответствующие им уровни на сенсорной панели не требовалось искать перебором по массиву всех идентификаторов;
  • минимизируйте количество видимых пользователю уровней на каждой отдельно взятой странице интерфейса.

4. ВЫВОДЫ

Каждый производитель так или иначе смог обновить линейку контроллеров. Лично мои выводы по результатам тестирования ниже:

  1. Оба производителя выбрали для новых контроллеров далеко не самые свежие процессоры, оснащенные всего 1 ядром и мягко говоря совсем не поражающие тактовой частотой (532-800 МГц).
  2. На фоне не очень высокой тактовой частоты оба производителя выбрали намного более требовательные к ресурсам операционные системы.
  3. Пункты 1+2 автоматически означают, что итоговая производительность контроллеров должна увеличиться не очень заметно, что и подтвердилось тестами.
  4. Производительность любого из рассмотренных контроллеров в 100-1000 раз хуже производительности современных ПК.
  5. Новые контроллеры AMX имеют отличную производительность сети Ethernet и обработки данных в буфере, а вот вычислительная мощность и программа TPControl несколько подкачали. Смена поколений добавила не очень много мощности.
  6. Новые контроллеры Crestron имеют отличную вычислительную мощность, программа Crestron App показала среднюю производительность, а вот обработка данных в буфере подкачала. Смена поколений очень сильно подняла производительность сети.

P.S. Ну и да, цены на б/у контроллеры PRO2 на e-bay теперь начинаются от 4500р : )

P.P.S. Все диаграммы подготовлены в сервисе http://charts.livegap.com/ , за что им спасибо!

  1. SmallGreenMan

    Интересные получились результаты.

    Собственно на разницу количества реальных вычислений и данных которые можно вывести на ipad используя AMX нового поколения я сталкивался. Думаю что проблема тут в алгоритме вывода информации на панель управления. Контроллер не посылает данные покуда они не изменятся. То есть если один за одним приходят 0, то на панель будет выведен только первый 0, остальные данные на панель выводится не будут, хотя и будут обработаны контроллером.

    Получается интересная ситуация:
    Допустим у нас есть 100 входящих пакетов с данными уровней в сек. Если данные для каждого из уровней постоянны (например всегда приходит -60db) то загрузка процессора будет ~10%. Как только данные уровня перестанут быть постоянными загрузка процессора составит ~50 - 70 %

    Время на обработку входящего пакета не меняется в первом и во втором случае => нагрузка на процессор растет только тогда когда контроллер посылает новые данные на Ipad и делает он это тогда когда данные изменились.

    P.S. Производительность контроллеров и у AMX и у Crestron хоть в целом и достаточна для большинства задач но в целом оставляет желать лучшего (и это в 2017 ❗ ). Постоянно при написании кода приходится оптимизировать процессорное время во избежании лагов или потери данных. Собственно пару раз натыкался на проекты которые в принципе невозможно реализовать на данных брендах в связи с низкой скоростью порта Ethernet (Crestron 2 поколение вообще ппц....).

    P.P.S. Интересно было бы посмотреть сравнение с новыми процессорами Extron. Говорят быстродействие у них на высоте, да и гибкость Pyton большой плюс. Правда они пока ну оооочень сырые и работа с GUI бИдапИчаль.

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>