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)
Ответ на: комментарий от bhfq

Ну вот первый раз запустив GTK Demo (gtk4) приложение там было 130мб, после перезапуска The process gtk4-demo (with pid 7958) is using approximately 65.8 MB of memory.

Первый запуск gtk4-widget-factory https://i.imgur.com/r4H0Ti8.png
Второй запуск https://i.imgur.com/qaXV38x.png

gtk3-widget-factory https://i.imgur.com/bdtV9bA.png всегда одинаковое количество озу.

Что за херня с /dev/nvidiactl 140мб? На Qml приложении Plasma Discover nvidiactl всегда 19мб.

Для сравнения:
GSK_RENDERER=opengl gtk4-widget-factory 138400 KB /dev/nvidiactl 65152 KB [heap]

GSK_RENDERER=vulkan gtk4-widget-factor 143624 KB /dev/nvidiactl 80176 KB [heap]

GSK_RENDERER=cairo gtk4-widget-factory 125884 KB /dev/nvidiactl 65312 KB [heap]

Эти люди что заявляли https://blog.gtk.org/2021/08/23/gtk-4-4/ «Our GL support works fine with the latest NVidia driver.» Ложь и провокация.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.