LINUX.ORG.RU
ФорумTalks

Linux Ate My RAM

 greta plumberg,


1

4

В соседнем треде один товарищ высказал следующую мысль:

Линукс здесь при том, что если компы подорожают (ещё раза в три-четыре), то линукс отыграет ещё пару процентов пользователей на десктопе. Ибо, в отличие от винды, его можно на всяких Raspberry Pi запускать, а они дёшевы.

И вот я что хочу по этому поводу сказать. Я скопировал из официального туториала GTK hello world с пустым окном:

$ cat example-1.c 
#include <gtk/gtk.h>

static void
activate (GtkApplication *app, gpointer user_data)
{
  GtkWidget *window;

  window = gtk_application_window_new (app);
  gtk_window_set_title (GTK_WINDOW (window), "My Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
  gtk_widget_show (window);
}

int
main (int argc, char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}

Поскольку код одинаковый для GTK 3 и 4, я скомпилировал его для обоих библиотек:

$ gcc $( pkg-config --cflags gtk4 ) -o example-1_gtk4 example-1.c $( pkg-config --libs gtk4 )

$ gcc $( pkg-config --cflags gtk+-3.0 ) -o example-1_gtk3 example-1.c $( pkg-config --libs gtk+-3.0 )

И запустил оба файла:

GTK3: запускается почти мгновенно, RAM – 36Mb (что тоже не мало).

GTK4: запускается у меня около 1.5 секунды, RAM – 147Mb.

Нет, это не ошибка, не 47, а именно 147Mb. Пустое окно. Вы можете проверить это сами. Я бы даже смирился с таким потреблением памяти, если бы оно запускалось мгновенно. Это не говоря уже о том, что GTK3 считается тормозным раможором по сравнению с GTK2.

Где там, говорите, вам Линукс запускается? На каком-каком железе?

UPD: Для GTK2

$ cat simple.c
#include <gtk/gtk.h>

int
main (int argc, char *argv[])
{

  GtkWidget *window;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_show (window);

  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

  gtk_main ();

  return 0;
}

$ gcc -o simple simple.c $(pkg-config --libs --cflags gtk+-2.0)

GTK2: запускается мгновенно, RAM – 14Mb.

★★★★★

Последнее исправление: Im_not_a_robot (всего исправлений: 1)

так линукс же, а не гытыка

все претензии к красношапке, Линус только за ядро отвечает

Harald ★★★★★
()

Где там, говорите, вам Линукс запускается? На каком-каком железе?

Лол, я тут обзавёлся одноплатником на Vortex86 166MHz, 128Mb RAM и современный линукс там таки запускается. Не гном конечно ж, но иксы с openbox вполне рабочие.

cocucka ★★★★☆
()
Последнее исправление: cocucka (всего исправлений: 1)

Кажется уже давно выяснили что за счет современного веба и любви разрабов к поделкам на электроне - меньше чем с 8гб десктоп превращается в перемогу. При этом на 8гб линукс-десктоп вполне комфортное решение на какое-то время даже с любым современным окружением.

phoen ★★
()
Последнее исправление: phoen (всего исправлений: 1)
Ответ на: комментарий от cocucka

Vortex86 133MHz, 128Mb RAM и современный линукс там таки запускается

Есть мнение, что либо твой Линукс не особо современный, либо ты нам лжёшь, ну, либо ты своп на SSD забубенил, что не честный эксперимент. Я экспериментировал на эту тему. Менее 192Мб - никак. Даже ч0рная консоль с башью не запускатся.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от lenin386

Последний стабильный релиз Alpine linux с ядром 5.15, загружается за минут пять где-то.

cocucka ★★★★☆
()
Ответ на: комментарий от Harald

Линус только за ядро отвечает

Linux это давно уже Gnome OS.

fsb4000 ★★★★★
()
Ответ на: комментарий от lenin386

Просто не надо запускать системдэ-помойки на слабых девайсах, вот и всё.

Сейчас по приколу включил его на пару минут с линуксом. Чорная консоль жрёт 13 мегабайт после старта, из 220 мб свопа использовано ноль. Моник лень подключать, так что иксы сейчас не буду гонять.

cocucka ★★★★☆
()

вот именно поэтому все выгодней делать сразу на Electron. Рамы он жрёт ненамного больше, но там хороший безопасный язык (typescript) и десяток лет опыта половины мира вложен в хорошие практики дизайна интерфейса

stevejobs ★★★★☆
()

да ладно?! может, это какая-то дебаг версия тулкита?

crypt ★★★★★
()

А как меряешь? Есть другой софт использующий либы gtk4? А gtk3?

Сколько памяти потребляют 2 окна (когда открыто 2 хелло ворда на gtk3/gtk4)?

SR_team ★★★★★
()
Ответ на: комментарий от izzholtik

Конечно можно только морду, так здоровые люди и делают в производительных приложениях (всяких календарях и блокнотах, например). У тебя основная логика на C++, и экстеншенами дергается из обработчиков кнопочек. Потом такую нативную логику можно перетащить на мобилку и шарить код между платформами.

stevejobs ★★★★☆
()
Ответ на: комментарий от XMs

Виджеты использовать религия не позволяет?

Сравнил сравнимое просто. (правда на Windows 10, так что можно ещё и на Linux результаты посмотреть, просто дефолтные проекты которые Qt Creator создаёт для определенного типа приложений.)

GTK4 использует GPU ускорение.

Qt Quick использует GPU ускорение.

Qt Widgets не использует GPU ускорение.

Ну если для полноты картины, то

приложение на Qt 6.2.2 с пустым окном Qt Widgets заняло 6 884k, то есть чуть меньше семи мегабайт оперативной памяти

fsb4000 ★★★★★
()
Ответ на: комментарий от cocucka

Недавно узнал о нем много нового:

Ариадна Конилл (Ariadne Conill), создатель музыкального проигрывателя Audacious, инициатор разработки протокола IRCv3 и лидер команды по обеспечению безопасности Alpine Linux, выступила ... blablabla

Если никого это кроме меня не смущает, то ок.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от cocucka

Я недавно SliTaz пробовал… мда, ресурсов у них явно мало… дистр маленький и шустрый, регулярно обновляется, но до сих пор 3.16 ядро и glibc 2.14

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

не знаю, меня политика вообще не интересует. а вот, кто безопасностью занимается, это интересует.

crypt ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

я дома перешел на FreeBSD и на ней тоже можно делать вот такие легкие контейнеры типа альпайна. хотя, конечно, это я сейчас о дома говорю, а не о работе в компании.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

если не говорить про тот же самый десктопный софт, то вот эта core-часть здесь заметно легче.

crypt ★★★★★
()
Ответ на: комментарий от fsb4000

Приложение с пустым окном QMainWindow: скомпилированный elf занимает 965968 байт (Debug сборка), Release - 30920 байт. Используйте qml и дальше.

braboar
()
Последнее исправление: braboar (всего исправлений: 1)

GTK3: запускается почти мгновенно, RAM – 36Mb (что тоже не мало).

У меня примерно 21 вышло на Debian 10

А для GTK-2 пример есть?

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR
$ cat simple.c
#include <gtk/gtk.h>

int
main (int argc, char *argv[])
{

  GtkWidget *window;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_show (window);

  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

  gtk_main ();

  return 0;
}

$ gcc -o simple simple.c $(pkg-config --libs --cflags gtk+-2.0)

У меня жрет около 14 метров, но еще срет ворнингами, что-то там деприкейтед и т.д.

Im_not_a_robot ★★★★★
() автор топика
Ответ на: комментарий от olegd

Я не думаю, что в Qt Widgets что-то принципиально поменялось по ресурсам, они же его почти не трогали.

Я все еще надеюсь, что я где-то ошибся и GTK4 на самом деле жрет гораздо меньше. Потому что hello world на Swing жрет 86 метров..

Im_not_a_robot ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Я для дома пока колеблюсь между Alpine, Void и FreeBSD на рабочей станции (она у меня не слабая, просто надоел этот глюкодром в мейнстрим дистрах). На одноплатниках пока у меня распбиан, но планирую перейти на альпин в ближайшее время. А конретно на этом вортексе пока планируется винда, если удастся видеодрайвер запустить, иначе дос будет.

cocucka ★★★★☆
()
Ответ на: комментарий от izzholtik

Я всё подумываю пересобрать ядро и выкинуть всё ненужное, ибо дефолтное довольно долго в память читается, но и так в принципе нормально

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

Думаешь, она некомпетентна в вопросах безопасности?

ну смотри, я изначально админ, так? вопросы безопасности - это мой второй хлеб. всю публику, которая этим занимается, я могу читать по лицу: «этот пришел из средних админов в управленцы отделом инфосек», «этот занимается AD/Cisco security в полиции/у военных», «этот юный хакер», «этот не безопасник, но его портфолио состоит из навыков, которые могут быть использованы для высшего пилотажа» и т.д. и т.п.

как ты думаешь, как часто я вижу а) женщин б) авторов муз.плеера в) людей, у которых есть время на политические вопросы, среди технических специалистов по инфосеку?

ес-но, я не отговариваю тебя юзать alpine линукс. я сам буду, если нужно. просто для меня это сигнал, что у них нету своей команды безопасности, но если выйдет CVE, они скорее всего смогут применить чужой патч. если ты не строишь критическую инфраструктуру, которая постоянного торчит мордой в инет, этого достаточно. но опять же _для_меня_ это та причина, по которой я не связываюсь с войд, диван и пр. чисто для фана.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от crypt

Да, я припоминаю, в альпине уже были косяки с уязвимостями. Я даже новость про это писал: Уязвимость в образе Docker Alpine Linux

С другой стороны, альпин минималистичен – меньше сущностей, меньше проблем. Мне проще уследить за системой, если там стоит только нужное мне, а не всякое говно поумолчанию.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

да, выбор небольшой. либо systemd/Linux, либо маргинальные линуксы, либо опять же маргинальные Free/OpenBSD. у последних хотя бы можно понять, кто в команде.

crypt ★★★★★
()
Ответ на: комментарий от lenin386

Ильич, не борзей. Системдэ не обязательна в общем случае, рунита или опенрц для легкой системы достаточно. Ты свои дибасы и прочее говно гоняй на многоядерных печках, а в слабые машины не лезь.

cocucka ★★★★☆
()
Ответ на: комментарий от Korchevatel

Qt - единственные ребята, которые смогли заставить X server тормозить и в итоге убедить всех в его ненужности. Так что твой лафтер весьма сомнителен.

untitl3d
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.