Если вы уже работали с Engee Function, знаете: базовая функциональность дает свободу, но не всегда хватает точности. В этом посте разобраны приемы, которые превращают ваш кастомный блок в максимально эффективный вычислительный модуль ⚙️
Что под капотом:
🔹 Явное определение выходных типов и размерностей.
Задайте явно типы данных и размерности, чтобы движок не тратил ресурсы на автоопределение. Это особенно важно при работе с большими матрицами или сложными системами сигналов.
🔹 Кэширование вычислений.
Используйте внутренние состояния и постоянные буферы для ускорения симуляций при множественных вызовах блока и уменьшения объема памяти.
Without cache:
1.056730 seconds (1000.00 k allocations: 76.294 MiB, 90.59% gc time)
With cache:
0.023816 seconds
🔹 Контроль прямого прохождения портов.
Возникла алгебраическая петля? Разорвите ее как вам необходимо с помощью контроля прямого прохождения порта.
🔹 Настройка шага расчета.
Определяйте собственный шаг расчета для управления частотой исполнения блока. Незаменимо, если блок должен работать реже или в отдельном дискретном контуре.
🔹 Явное определение выходных типов и размерностей.
Задайте явно типы данных и размерности, чтобы движок не тратил ресурсы на автоопределение. Это особенно важно при работе с большими матрицами или сложными системами сигналов.
🔹 Кэширование вычислений.
Используйте внутренние состояния и постоянные буферы для ускорения симуляций при множественных вызовах блока и уменьшения объема памяти.
Without cache:
1.056730 seconds (1000.00 k allocations: 76.294 MiB, 90.59% gc time)
With cache:
0.023816 seconds
🔹 Контроль прямого прохождения портов.
Возникла алгебраическая петля? Разорвите ее как вам необходимо с помощью контроля прямого прохождения порта.
🔹 Настройка шага расчета.
Определяйте собственный шаг расчета для управления частотой исполнения блока. Незаменимо, если блок должен работать реже или в отдельном дискретном контуре.
❗Ключевая идея:
Engee Function — не просто “гибкий” блок с пользовательским кодом. Это инструмент, который позволяет использовать ваш код в моделях Engee максимально эффективно.
Engee Function — не просто “гибкий” блок с пользовательским кодом. Это инструмент, который позволяет использовать ваш код в моделях Engee максимально эффективно.
🔗 Полная статья: Продвинутое использование Engee Function →
Об этих и других лайфхаках расскажем и покажем в ходе Дня Engee 2025.
Об этих и других лайфхаках расскажем и покажем в ходе Дня Engee 2025.