1

Тема: gtk4 bloating

Вирішив порівняти теки Debug вже готової програми на C++(Qt6) і лише частково написаної Rust(gtk4).
Виявилося, що С++(Qt6) займає 14Мб, а Rust(gtk4) — 688Мб.
Чи можна щось зробити, щоб зменшити блоатинґ у gtk4?
Чи для gtk4 — це норма?

Подякували: leofun011

2

Re: gtk4 bloating

Це радше для Rust норма. Проблема сучасної мови.

3

Re: gtk4 bloating

koala написав:

Це радше для Rust норма. Проблема сучасної мови.

У мене ж там навіть іконок немає, а вже майже гігабайт...
При вдалій збірці з'являється повідомлення:
Finished dev [unoptimized + debuginfo] target(s) in 0.04s

Ось це unoptimized якось впливає на розмір?
Як взагалі давати раду з таким блоатинґом в Rust?

4

Re: gtk4 bloating

Ніяк, просто cargo clean час від часу запускати (але після цього збірка буде один раз повільною). Це розмір артефактів збірки (об'єктних файлів для усіх бібліотек, використаних у проєкті).

Подякували: Teg Miles, Tarpan87, leofun013

5

Re: gtk4 bloating

Писав же ж вам щодо gtk, сумніваюсь, що під растом воно працює сильно інакше (ну і так, зверху ще трохи блоату від самого расту).

Teg Miles написав:

Ось це unoptimized якось впливає на розмір?

Може впливати, так, як і debuginfo. Доцільніше було б порівнювати релізні збірки.

Teg Miles написав:

Виявилося, що С++(Qt6) займає 14Мб

А Qt схоже таки потроху еволюціонує у щось юзабельне.

Подякували: Teg Miles, leofun012

6

Re: gtk4 bloating

wander написав:

Писав же ж вам щодо gtk, сумніваюсь, що під растом воно працює сильно інакше (ну і так, зверху ще трохи блоату від самого расту).

Teg Miles написав:

Ось це unoptimized якось впливає на розмір?

Може впливати, так, як і debuginfo. Доцільніше було б порівнювати релізні збірки.

Teg Miles написав:

Виявилося, що С++(Qt6) займає 14Мб

А Qt схоже таки потроху еволюціонує у щось юзабельне.

Не бачу зараз якісної альтернативи gtk4 для Rust.
Найбільше відлякує відсутність документації та обмаль віджетів.
Є ще egui, який дуже хвалять, але там така ж ситуація з посібниками, як і в Imgui.

7

Re: gtk4 bloating

Teg Miles написав:

Вирішив порівняти теки Debug ...
Виявилося, що ... Rust(gtk4) — 688Мб.

https://i.kym-cdn.com/photos/images/newsfeed/000/951/954/1d7.png

З початку теж хотів питати "чому не Release ?", але чекайте, навіть для Debug це задоxy* забагато.

8

Re: gtk4 bloating

Глянув свій Advent of Code. Там узагалі без фреймворків, лише кілька корисних ліб. Тека target займає 1,2 ГБ. З них 660 МБ - deps, 380 МБ - incremental.
Зараз спробую змінити crt-static, відпишуся...

Подякували: leofun011

9

Re: gtk4 bloating

А те саме.
Ось є інструкція (англ.) - це, правда, про цільовий файл, але залежності теж будуються так само, можна погратися, якщо вам часу шкода менше, ніж місця на диску.

Подякували: Teg Miles1

10

Re: gtk4 bloating

leofun01 написав:
Teg Miles написав:

Вирішив порівняти теки Debug ...
Виявилося, що ... Rust(gtk4) — 688Мб.

https://i.kym-cdn.com/photos/images/newsfeed/000/951/954/1d7.png

З початку теж хотів питати "чому не Release ?", але чекайте, навіть для Debug це задоxy* забагато.

Release 489 Мб, якщо цікаво.

Подякували: leofun011

11 Востаннє редагувалося Teg Miles (21.03.2024 11:42:57)

Re: gtk4 bloating

Щоб усвідомити масштаби проблеми:
Стандартна програма Hello World в Rust займає 1Мб debug і 800Кб release.
Для порівняння в C++ аналогічна річ займає 17Кб.

Подякували: leofun011