Comments 37
А это был hello world или сколько-нибудь вменяемое приложение?
В качестве приложения было выбрано обычное пустое окно
Ну то есть это вообще никак не показывает потребление памяти тулкитом, только его базовый footprint. Увы, исследование ни о чём. На той же виртуализации списков (или её отсутствии) разница может быть на порядки, причём как по потреблению памяти, так и по быстродействию.
Ну и в конце концов сам автор предупреждает, что научной ценности данный материал не несет. Так, забавы ради.
с другой стороны объем данного приложения должен быть весьма большим, чтобы убрать синтетичность.
ListView на 100500 элементов уже был бы показательным. Например создает фреймворк 100500 элементов или ограничивается небольшим числом видимых элементов.
Он характеризует по потреблению памяти, а не по размеру рантайма.
Списки и таблицы распространенные компоненты. Делаете ли UI к базе данных или клиент к социалке с бесконечной лентой.
сравниваете реализации
Вся статья о сравнение реализации. Вы сейчас пытаетесь увести с обсуждаемой темы.
Я 5 лет назад на предмет памяти смотрел расширенные примеры — грубо говоря окно, на котором отрисованы все элементы UI из библиотеки (обычно с каждой либой есть такой пример). Цифры были сравнимыми: 10-20 Мб частный рабочий набор.
github.com/AvaloniaUI/Avalonia
Это перевод, судя по всему автор доступен в соответствующем посте на реддите. https://www.reddit.com/r/programming/comments/cr3tqx/comment/ex2f6g4
- нет исходного кода приложений, а значит hello world, который ничего не показывает;
- судя по цифрам, сюда включается разделяемые библиотеки.
На скорость (в т.ч загрузки) и потребляемую память влияет мало.
P.S.Я полагаю, что 5 Мб речь идет о статической сборке Qt, поскольку иначе 1.5-2Мб.
- Qt (Qt Designer или в целом IDE Qt Creator)
- Gtk (Glade или IDE Anjuta)
- wxWidgets (У них несколько собиралок, например wxformbuilder, а также собиралка в составе IDE Code::Blocks)
- FLTK (Fluid: позволяет ещё код и UI блоками собирать)
- JUCE (имеет где-то в комплекте странного вида IDE с собиралкой UI)
Странно, что есть winapi, но нет cocoa.
Вот с HorusUI я ожидал примерной цифры в 20 Мб, т. к. он использует OpenGL и режим немедленной отрисовки GUI. Не понимаю, почему цифра вышла больше.
Замапил себе в процесс какой нибудь зашаренный фреймбуфер или пару оных для теневого свопа?
SWT отсутствует.
Без исходников непонятно, что они там накидали в Swing и JavaFx, может там неоптимальный подход.
Сравнение потребления памяти различных GUI тулкитов