Мы рассказали в статье, что недавно сам Canonical начал работать над GTK-эмбеддером, но со всем сопутствующем зоопарком библиотек и своими проблемами. При тестировании лучший результат показал именно наш форк.
Это был форк одной из первых проверок концепции (PoC) при работе с wayland+flutter, там изначально ничего не было, кроме рендера. Уже потом мы туда впиливали поддержку клавиатуры/RCU, мыши, работу с AOT, вертикальную синхронизацию и т.п. Поэтому репозиторий старый, но доработки форка актуальные.
Это понятно. Вопрос был в том, насколько ощутимо шустрее он будет на целевой платформе с очень ограниченными ресурсами, поэтому мы сделали пару простых приложений. Например, запускали галереи картинок c тысячей по горизонтали, смотрели анимации с учетом всего этого и делали замеры.
Результат был очень ощутим, притом debug, jit_release и aot_release сильно отличаются друг от друга. Казалось бы, jit и aot могли не сильно отличаться, но практика показала иную картинку.
Realtek у себя на сайте заявляет, что для этой платы есть RDK build, который тоже по сути Linux. А еще есть плата Banana Pi BPI-M4 на базе того же чипа RTD1395, на ней есть образы как с Linux, так и с Android.
1,5 Mpps — это 1500000 пакетов в секунду. По коду есть параметры генерируемого потока «mode=STLTXCont(bps_L2=4500000000)»
Параметр может быть задан в pps, bps_L1, bps_L2
# pps: float
# Packets per second
#
# bps_L1: float
# Bits per second L1 (with IPG)
#
# bps_L2: float
# Bits per second L2 (Ethernet-FCS)
Что бы получить 1,5Mpps, соотвественно, необходимо задать bps_L2=1500000.
Согласны, можно разрабатывать и тестировать сетевые устройства и без DPDK. В нашем проекте реализация этой технологии была включена в список требований заказчика, благодаря чему и появилась эта заметка для Хабра. :)
Да, можно попробовать выжать до 40 Гбит/с, это заявлено на сайте разработчиков TRex. Они поддерживают интерфейсы до 100 Гбит/с, по скоростям — до 22 миллионов пакетов в секунду (mpps).
На нашем железе — Intel® Core(TM) i7-7700 CPU @ 3.60GHz — получилось максимум выжимать 10 Гбит/с. Дальше при увеличении количества потоков скорость уже не росла. Это из-за того, что процессор поддерживает всего 8 потоков работы с данными.
Вы правы, конечно, проще работать с готовыми исследованиями рынка, но они у заказчика не всегда есть. Хотя общее понимание рынка и обзорные материалы по конкурентам есть почти всегда, и это очень помогает.
Бывает, что заказчик передает проект с уже готовым ТЗ, где расписаны все подробности, в том числе и материалы по исследованиям, о которых мы рассказали на первом этапе. И тогда можно сразу начать с эскизирования. Хотя сложно себе представить дизайнера, который не выделит один-два дня на собственное «расследование». :-) Например, поиск прототипов для проекта из других сфер — это все-таки задача дизайнера, маркетолог ему тут не поможет.
Хотя сам принцип работы вы описали верно: в команде на стороне заказчика должен быть и менеджер продукта, и маркетолог.
Хотя для точности добавим еще 5 копеек. Даже сами гаранулы получают практически всегда экструзией: продавливают расплавленный материал через сито и режут ножами с охлаждением (обычно водой).
Экструзионный капролон или литьевой капролон — это своего рода жаргон, описывающий продукт, полученный тем либо иным методом. Сами гранулы исходные получают, конечно, не экструзией и не литьем.
Делимся одним из рецептов приготовления силиконовой пресс-формы :)
Для начала нужна мастер-модель, т.е. образец детали, которую мы будем в этой силиконовой форме отливать.
Берем либо готовую серийную деталь, либо делаем деталь заново — сначала в CAD-системе, а затем на 3D–принтере (у нас на сайте рассказано подробнее про материалы и технологии для изготовления прототипов).
Поверхность образца нужно тщательно обработать, определить линию разъема формы, закрыть все отверстия.
Далее монтируем опалубку для изготовления формы, в которую будет установлена наша мастер-модель. Устанавливаем литниковую систему и заливаем смесь из предварительно дегазированного силикона и отвердителя.
Оставляем залитую форму в специальной камере: там силикон остывает и происходит дополнительная дегазация.
Примерно через сутки достаем готовую форму. Вуаля! Теперь у нас есть силиконовая пресс-форма для отливки копий нашей мастер-формы.
Как видите, все гораздо проще и быстрее, чем с металической оснасткой. Но нужно учитывать ограничения этой технологии: такой формы хватит на 20—30 отливок и тонкостенные детали с форме из силикона не выльются.
Конечно, сode style на проекте был, но исходно его делали вручную, т.к. некоторые файлы нельзя было форматировать целиком. Это отнимало время и порождало ненужные дискуссии. Те, кто делал review коммитов, писали замечания по каждому пропущенному пробелу или переносу строки, заворачивали merge request-ы на доработку.
Разработчиков не радовало, что из-за таких пустяков приходилось возвращаться к задаче. Тем более что несвоевременно влитый merge request это ещё и merge с новыми изменениями, сделанными другими.
На проекте работала распределенная команда: часть — на стороне Promwad, часть — на стороне заказчика. Поэтому в рамках этой конкретной разработки мы договорились использовать общий инструмент для более простого и удобного форматирования.
Сейчас разработчики просто коммитят свой код, не заботясь о том, правильно ли там расставлены пробелы с переносами. Проблемы возникают только при ошибках форматера, но их гораздо проще обойти при коммите, чем потом ловить замечания от Lead-ов. :-)
В этой теме и правда много тонкостей. Объем знаний такой, что настольная книга технолога по литью имеет объем в 500 страниц. Например, Роберт А. Мэллой «КОНСТРУИРОВАНИЕ ПЛАСТМАССОВЫХ ИЗДЕЛИЙ ДЛЯ ЛИТЬЯ ПОД ДАВЛЕНИЕМ». И даже она не раскрывает всех граней, т.к. технологии не стоят на месте, а книга выпускалась в начале нулевых.
Результат был очень ощутим, притом debug, jit_release и aot_release сильно отличаются друг от друга. Казалось бы, jit и aot могли не сильно отличаться, но практика показала иную картинку.
Параметр может быть задан в pps, bps_L1, bps_L2
# pps: float
# Packets per second
#
# bps_L1: float
# Bits per second L1 (with IPG)
#
# bps_L2: float
# Bits per second L2 (Ethernet-FCS)
Что бы получить 1,5Mpps, соотвественно, необходимо задать bps_L2=1500000.
На нашем железе — Intel® Core(TM) i7-7700 CPU @ 3.60GHz — получилось максимум выжимать 10 Гбит/с. Дальше при увеличении количества потоков скорость уже не росла. Это из-за того, что процессор поддерживает всего 8 потоков работы с данными.
Бывает, что заказчик передает проект с уже готовым ТЗ, где расписаны все подробности, в том числе и материалы по исследованиям, о которых мы рассказали на первом этапе. И тогда можно сразу начать с эскизирования. Хотя сложно себе представить дизайнера, который не выделит один-два дня на собственное «расследование». :-) Например, поиск прототипов для проекта из других сфер — это все-таки задача дизайнера, маркетолог ему тут не поможет.
Хотя сам принцип работы вы описали верно: в команде на стороне заказчика должен быть и менеджер продукта, и маркетолог.
Для начала нужна мастер-модель, т.е. образец детали, которую мы будем в этой силиконовой форме отливать.
Берем либо готовую серийную деталь, либо делаем деталь заново — сначала в CAD-системе, а затем на 3D–принтере (у нас на сайте рассказано подробнее про материалы и технологии для изготовления прототипов).
Поверхность образца нужно тщательно обработать, определить линию разъема формы, закрыть все отверстия.
Далее монтируем опалубку для изготовления формы, в которую будет установлена наша мастер-модель. Устанавливаем литниковую систему и заливаем смесь из предварительно дегазированного силикона и отвердителя.
Оставляем залитую форму в специальной камере: там силикон остывает и происходит дополнительная дегазация.
Примерно через сутки достаем готовую форму. Вуаля! Теперь у нас есть силиконовая пресс-форма для отливки копий нашей мастер-формы.
Как видите, все гораздо проще и быстрее, чем с металической оснасткой. Но нужно учитывать ограничения этой технологии: такой формы хватит на 20—30 отливок и тонкостенные детали с форме из силикона не выльются.
Разработчиков не радовало, что из-за таких пустяков приходилось возвращаться к задаче. Тем более что несвоевременно влитый merge request это ещё и merge с новыми изменениями, сделанными другими.
На проекте работала распределенная команда: часть — на стороне Promwad, часть — на стороне заказчика. Поэтому в рамках этой конкретной разработки мы договорились использовать общий инструмент для более простого и удобного форматирования.
Сейчас разработчики просто коммитят свой код, не заботясь о том, правильно ли там расставлены пробелы с переносами. Проблемы возникают только при ошибках форматера, но их гораздо проще обойти при коммите, чем потом ловить замечания от Lead-ов. :-)
Еще на Хабре есть наша статья про разработку гаджетов Lapka для iPhone: там корпус собран с применением шлифованного дерева твердых пород.
В этой теме и правда много тонкостей. Объем знаний такой, что настольная книга технолога по литью имеет объем в 500 страниц. Например, Роберт А. Мэллой «КОНСТРУИРОВАНИЕ ПЛАСТМАССОВЫХ ИЗДЕЛИЙ ДЛЯ ЛИТЬЯ ПОД ДАВЛЕНИЕМ». И даже она не раскрывает всех граней, т.к. технологии не стоят на месте, а книга выпускалась в начале нулевых.