Статья
Поиск медленного плагина в Альтрон с помощью вкладок «Производительность» (Performance) и «Внутренние сведения» (Internal Info)
Кадры теряются, фактическая частота ниже заданной, а в графе обработки десять или двенадцать узлов. Какой из них виноват? Чтобы найти медленный плагин в Альтрон, не нужно гадать или удалять узлы по одному. Две небольшие вкладки на панели диагностики выводят ответ на экран.

Граф обработки в Альтрон — это цепочка узлов. Каждый узел — плагин, который принимает данные от предыдущего узла и передаёт их следующему. Если одно из звеньев работает медленно, всё, что за ним, ждёт.
Под списком обнаруженных камер расположены три индикатора: Physical RAM, Virtual RAM и CPU. Каждый показывает отдельно общую загрузку системы и загрузку самой программой. Если CPU загружен почти на 100 процентов, потеря кадров неудивительна. Теперь нужно выяснить, кто занимает CPU.
Эта вкладка — простая таблица. Столбец Cpu показывает долю CPU, приходящуюся на каждый узел. Имя узла указано в столбце Item. Таблица обновляется каждую секунду. Есть также строка Ui, показывающая долю самого пользовательского интерфейса. Если одновременно открыто несколько камер, строки каждой цепочки отображаются под отдельным заголовком Chain с номером цепочки.
Метод, которым мы пользуемся при поиске неисправностей:
- Запустите захват точно с теми настройками, при которых возникла проблема.
- Откройте вкладку Performance и подождите несколько секунд, пока значения стабилизируются.
- Найдите строку, значение Cpu в которой явно больше остальных.
- Внесите одно изменение в этот узел и снова посмотрите на таблицу. Только одно изменение за раз.
Проблема не всегда в CPU. Иногда узел с нормальной загрузкой CPU теряет данные. Для этого и служит вкладка Internal Info:
Правило простое: если выходная скорость узла внезапно падает ниже входной, данные теряются именно здесь. Узлы сохранения необработанных данных также показывают на этой вкладке скорость записи на диск. А если изображения нет вовсе, сначала проверьте, не равен ли нулю Count Rate выходного порта камеры.
ImagingInterval в режиме Max rate отбрасывает лишние данные. Если поставить его в начало цепочки, перед ветвью сохранения, записанный файл будет иметь ту же низкую частоту. Когда нужен каждый кадр, ставьте этот узел только в ветвь отображения или перед тяжёлым узлом, которому не нужен каждый кадр.
Небольшой совет из опыта: смотрите значение Cpu в установившемся режиме, а не в первые секунды после Start. В этот момент всё ещё запускается, и цифры вводят в заблуждение.
Более общее объяснение профилирования программ см. Википедия (на английском).
Если вы не можете интерпретировать таблицу Performance для своего графа, пришлите нам её снимок экрана через форму обратной связи.