СРАВНИТЕЛЬНОЕ ТЕСТИРОВАНИЕ GO-ФРЕЙМВОРКОВ (2023)
Рассмотрены популярные фреймворки на языке программирования Go. Приведены результаты сравнительного тестирования их производительности в часто встречающихся операциях. Замерены количество запросов в секунду, задержка при запросе и потребление оперативной памяти (результаты представлены в виде диаграммы).
Идентификаторы и классификаторы
- eLIBRARY ID
- 58909603
Исходная задача при разработке любого программного обеспечения — выбор набора технологий, которые постоянно развиваются и обновляются. На сегодня из всех языков программирования наиболее выделяется язык Go. Лет десять назад это был нишевый язык. В 2023 г., по данным статистики github.com, он занимал третье место по количеству звёзд и открытым запросам на слитие и шестое по количеству пушей и открытых обсуждений [1]. Go — это многопрофильный язык, представляющий собой встроенный набор инструментов, созданный для удобной разработки современных приложений с параллельной обработкой (облачных, системных и веб-приложений) [2].
Для удобства и скорости разработки программисты используют различные пакеты, среди которых выделяется отдельный тип — фреймворки. Это программная платформа, определяющая структуру программной системы, облегчающей разработку и объединение разных компонентов большого программного проекта. Язык Go построен на философии Unix, согласно которой разработчикам следует использовать минималистичные пакеты вместо их мультифункциональных аналогов [3]. Пакеты, относящиеся к фреймворкам, выполняющие ограниченный набор функционала (преимущественно роутинг и темплейтинг), и называются микрофреймворками. Наша цель — тестирование производительности и эффективности популярных и актуальных фреймворков на языке Go.
Для сравнения были выбраны фреймворки и пакеты, выполняющие схожие функции, имеющие более тысячи звёзд на гитхабе и обновлённые не более двух лет назад. Список сравниваемых пакетов: atreugo, beego, chi, echo, fasthttp, fiber, gearbox, gin, goframe, gorilla, goyave, httprouter, negroni, webgo и default (реализация роутера средствами встроенного пакета go). Для замеров был использован пакет go-web-framework-benchmark.
Список литературы
- Батчер М., Фарина М. Go на практике. М.: ДМК Пресс, 2017. 374 с.
- GitHut 2.0 A Small Place to Discover Languages in Github // Github Language Stats [Web]. URL: https://madnight.github.io/githut/#/pull_requests/2023/2 (accessed: 30.08.2023).
- Laszczak R. The Best Golang framework: no framework? // Хабр [Web]. URL: https://habr.com/ru/articles/705078/ (дата обращения: 02.09.2023).
- Куприянов М. Как оценить ёмкость сервиса и не упасть под нагрузкой // Хабр [Электронный ресурс]. URL: https://habr.com/ru/companies/yandex/articles/481134/ (дата обращения: 02.09.2023).
- Abrahamse P. How 8 Different A/B Testing Tools Affect Site Speed (Original Study) // CXL [Web]. URL: https://cxl.com/blog/testing-tools-site-speed/ (accessed: 31.08.2023).
- Paraschiv E. Guide to the “Cpu-Bound” and “I/O Bound” Terms //Baeldung on Computer Science [Web]. URL: https://www.baeldung.com/cs/cpuio-bound (accessed: 03.02.2023).
Выпуск
Другие статьи выпуска
Рассмотрена задача поиска и распознавания текстовой информации на скан-копиях документов. Описаны схема и программная реализация алгоритмов оценки ориентации, поиска и распознавания текста на изображениях. Предложены схема работы с различными видами документов и форма отображения результата.
Дано описание Томита-парсера, предназначенного для анализа текста на русском языке, который работает на основе GLR-анализа. Рассмотрены способы задания грамматик в Томита-парсере, описания газеттиров и создания полей фактов. Представлена работа Томита-парсера на примере конкретного текста.
Описана методика создания каркасной модели, ранее опробованная при моделировании корабля типа авианосца, используемая для построения модели боевого танка, основная геометрия которого базируется на двумерных мишенях-силуэтах. Каркасная модель выполнена в среде MathCAD, а поверхностная геометрическая - в программе OpenSCAD. Представлена исходная трёхмерная модель танка, проецируемая из произвольной точки пространства на выбранную картинную плоскость с образованием двумерной проекции.
Рассмотрены особенности применения термопластичных полимеров в качестве основного конструкционного материала для электродвигателей. Предложена технология послойного наплавления при создании аксиального синхронного электродвигателя на постоянных магнитах с использованием термопластичных полимеров, позволяющая эффективно изолировать корродирующие элементы от жидкостной среды, что даёт возможность применять электродвигатели в агрессивных средах.
Представлена разработанная в ВИНИТИ РАН и введённая в эксплуатацию безбумажная технология обработки поступающего в институт потока научных публикаций и создания информационных продуктов, базирующаяся на Единой технологической базе данных и Автоматизированном рабочем месте «Корректор, Редактор, Референт», которые позволяют научным редакторам и референтам ВИНИТИ РАН эффективно обрабатывать документы для реферативных журналов. Проанализирован опыт автоматизации редакторской подготовки издания реферативного журнала «Математика».
Описан метод ввода поправки в систему управления наведением зенитной установки при работе с внешним целеуказанием. Отмечено, что при раздельном размещении радиолокационной станции и зенитной установки следует учитывать дистанцию между ними для повышения точности наведения орудия, а при каждом изменении их дислокации необходимо уточнять значение поправки.
Рассмотрена альтернатива перестраиваемой катушке Петерсена на основе переключаемых секций трансформатора на низком напряжении с использованием контактора и ёмкостей, создающих необходимый реактанс. Представлена система плавного регулирования с применением симисторного регулятора небольшой мощности. Получен расчёт дугогасящего реактора с использованием ёмкостей низкого напряжения и типовых трансформаторов без перестраиваемых механических частей. Проанализированы условия эксплуатации многоступенчатого устройства дугогашения в однофазном варианте.
Затронута проблема отсутствия единообразного подхода к формированию перечня оборудования для функционирования автономного надводного судна. Приведён перечень оборудования в зависимости от уровня автономности. Рассмотрены протоколы передачи данных. Цель данной статьи - анализ перечня необходимого оборудования и предложения по протоколам передачи данных.
Рассмотрена методика оперативного оценивания параметров ракет, позволяющая определять выходные характеристики разрабатываемой ракеты с приемлемой инженерной точностью.
Издательство
- Издательство
- АО "НТЦ Элинс"
- Регион
- Россия, Москва
- Почтовый адрес
- 124460, город Москва, город Зеленоград, Панфиловский пр-кт, д. 4 стр. 1, пом V; ком 1-9
- Юр. адрес
- 124460, город Москва, город Зеленоград, Панфиловский пр-кт, д. 4 стр. 1, пом V; ком 1-9
- ФИО
- Тикменов Василий Николаевич (Руководитель)
- Сайт
- https://elins.ru/