Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 размер DLL смущает, как уменьшить.  [new]
yemets63
Member

Откуда: Самара
Сообщений: 1438
ни когда не задавался вопросом о размерности DLL, но поступила задачка "...", сделал пустой DLL, еще не начала закидывать функционал, посмотрел на размер файла DLL - 11 Мб. ужаснулся.
отключил всю информацию о дебаггерах

{$IFNDEF DEBUG}
  {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} // Удаление из exe таблицы релокаций.
  {$SetPEFlags IMAGE_FILE_DEBUG_STRIPPED} //  Удаление из ехе Debug информации
  {$SetPEFlags IMAGE_FILE_LINE_NUMS_STRIPPED} // Удаление из exe информации о номерах строк
  {$SetPEFlags IMAGE_FILE_LOCAL_SYMS_STRIPPED} // Удаление local symbols
  {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} //При запуске exe с компакта, флэшки, других извлекаемых устройств, считать exe в свап и запустить оттуда. Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой...
  {$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP} // Аналогично предыдущей, только для сетевых дисков
  {$SetPEFlags IMAGE_FILE_EXECUTABLE_IMAGE}
{$ENDIF}


может не правильно, так как размер остался тот же.

Как максимально уменьшить размер DLL?
P.S.
(XE Berlin)
4 апр 21, 13:22    [22304061]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

yemets63
Как максимально уменьшить размер DLL?

Поставить галочку "Build With Run-Time Packages".

Posted via ActualForum NNTP Server 1.5

4 апр 21, 13:29    [22304066]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5100
yemets63,

Пустая dll в берлине весит чуть меньше мегабайта. Если отключить system.classes - 136KB, если отключить ещё и System.SysUtils - 45KB.
4 апр 21, 14:10    [22304080]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 834
Dimitry Sibiryakov

yemets63
Как максимально уменьшить размер DLL?

Поставить галочку "Build With Run-Time Packages".
худший совет, который можно только дать
4 апр 21, 14:12    [22304082]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

softwarer и писатели на C# одобряют.

Posted via ActualForum NNTP Server 1.5

4 апр 21, 14:19    [22304084]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
yemets63
Member

Откуда: Самара
Сообщений: 1438
я не все ключи показал в тексте, но там кажись прбовал Build With Run-Time Packages, когда перебирал разные варианты

попробую из интерфейса

я так прикинул, что мне особо не должно быть важно Build With Run-Time Packages, но нужно посмотреть по результатам. пока не могу сказать получиться или не получиться плохо или хорошо отключить эту опцию. покажет время

спасибо. пробую
4 апр 21, 14:46    [22304095]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
yemets63
сделал пустой DLL,
library TestDLL;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

end.

yemets63
посмотрел на размер файла DLL - 11 Мб.
dir *.dll /s
 Содержимое папки D:\Sources\Temp\TestDLL\Win32\Debug

04.04.2021 15:18 4 937 719 TestDLL.dll
1 файлов 4 937 719 байт

Содержимое папки D:\Sources\Temp\TestDLL\Win32\Release

04.04.2021 15:19 996 352 TestDLL.dll
1 файлов 996 352 байт

Всего файлов:
2 файлов 5 934 071 байт
0 папок 214 498 402 304 байт свободно
Кто-то чего-то недоговаривает.

P.S. Delphi 10.3.1

Сообщение было отредактировано: 4 апр 21, 15:16
4 апр 21, 15:24    [22304101]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
yemets63>ни когда не задавался вопросом о размерности DLL
Никогда, о размере.
4 апр 21, 15:45    [22304105]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2520
Kazantsev Alexey
Пустая dll в берлине весит чуть меньше мегабайта. Если отключить system.classes - 136KB, если отключить ещё и System.SysUtils - 45KB.
У некоторых "пустая" обозначает "с пустой формой"
4 апр 21, 17:01    [22304118]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5100
white_nigger,

Даже в этом случае она весит 2Mb. Хотя, если собрать в дебаге то 11Mb. То есть, про PEFlags слышали, а про режимы сборки нет? Э-э-х...
4 апр 21, 17:19    [22304121]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
GunSmoker
Member

Откуда:
Сообщений: 3210
Большая часть из 11 Мб - это отладочная информация TD32 и к флагам PE-файла она отношения не имеет. В настройках проекта можно включить галку "Place debug information in separate TDS file" (Project > Options > Delphi Compiler > Linking).
4 апр 21, 19:45    [22304136]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
GunSmoker,

да там всё равно много хлама остаётся, один RTTI что стоит

с пакетами тоже не особо меньше

RTL в дельфях явно не в приоритете у разрабов, костыляют лишь бы работало, у него хроническая альфа-версия

Сообщение было отредактировано: 5 апр 21, 09:20
5 апр 21, 09:24    [22304202]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 682
kealon(Ruslan)
GunSmoker,
да там всё равно много хлама остаётся, один RTTI что стоит
с пакетами тоже не особо меньше

Я бы сказал, что у софта на Дельфях стабильное плато 1 Мб..5 Мб. Даже простые бинарники в него попадают - впрочем, как и навороченные. Превысить размер трудновато, но и добиться более-менее полезной программы меньшего размера тоже непросто. У меня тоже был период минимизации всего и вся, реализовывал заново нужные куски из Sysutils (который добавляет 150 кило), потом как-то остыл. На фоне дистрибов Электрона весом под 200 мегов все эти минимизации смешны))
Мешает, что RTL сама поощряет распухание. Элементарный BinToHex, например, лежит в Classes, который нагружен совершенно разной требухой. Что мешало вынести базовый, почти что абстрактный TStream в SysUtils или System? Он бы не помешал, зато сколько реализаций могло бы избавиться от Classes.

Сообщение было отредактировано: 5 апр 21, 10:27
5 апр 21, 10:32    [22304234]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 834
Fr0sT-Brutal
На фоне дистрибов Электрона весом под 200 мегов все эти минимизации смешны))
+
5 апр 21, 11:12    [22304272]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
Fr0sT-Brutal
Что мешало вынести базовый, почти что абстрактный TStream в SysUtils или System? Он бы не помешал, зато сколько реализаций могло бы избавиться от Classes.

Бесит, что достаточно написать в коде Variant или OleVariant - тут же неявно линкуется Variants, а он тянет SysUtils... Получается даже API-шный ActiveX безопасно не подключить. Раньше такой фигни не было :(...
5 апр 21, 12:39    [22304351]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
Fr0sT-Brutal, asutp2
на электроне никто не пишет системные dll-ки, если например сравнить с dll-ками расширений для php или питона, то уже не так смешно

а если копнуть глубже, то и советы с bpl не смешны становятся
5 апр 21, 12:43    [22304356]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
ziv-2014
Member

Откуда:
Сообщений: 593
kealon(Ruslan),
bpl можно свой создать со своим блекджеком и женщинами легкого поведения.
5 апр 21, 13:01    [22304373]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
ziv-2014,

можно, но в любом случае огребёшь по полной, переделка system.pas и обработка исключений вещи довольно нетривиальные
5 апр 21, 13:18    [22304384]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
kealon(Ruslan)
можно, но в любом случае огребёшь по полной, переделка system.pas и обработка исключений вещи довольно нетривиальные

А зачем переделывать System.pas?
5 апр 21, 13:25    [22304389]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32207

05.04.2021 10:32, Fr0sT-Brutal пишет:
> На фоне дистрибов Электрона весом под 200 мегов все эти минимизации смешны))

я надысь ставил TuneIn (радио) на ВедроидТВ.
460 МБ!
радио!

MXplayer занимает 96 МБ.

Posted via ActualForum NNTP Server 1.5

5 апр 21, 14:54    [22304504]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 682
Maxim Rusov
Бесит, что достаточно написать в коде Variant или OleVariant - тут же неявно линкуется Variants, а он тянет SysUtils... Получается даже API-шный ActiveX безопасно не подключить. Раньше такой фигни не было :(...

Вроде всегда так было, по крайней мере с Variants. Там же куча конвертаций, которые в SysUtils. На самом деле, избавляться от SysUtils практически никогда не стоит свеч - там куча полезностей, а вес от силы 200 кб добавляется (и то, значительная часть его - таблица юникод кодпоинтов). Можно, конечно, какой-нибудь KOL подключить...
kealon(Ruslan)
Fr0sT-Brutal, asutp2
на электроне никто не пишет системные dll-ки, если например сравнить с dll-ками расширений для php или питона, то уже не так смешно

а если копнуть глубже, то и советы с bpl не смешны становятся

На дельфе тоже никто не пишет системные dll-ки :(
Опять же, если избежать компонентов и классов, то в 500 Кб можно уложить приличной полезности либу. Но вот чуть только понадобится stringlist или stream - еще 500 как с куста. Тем не менее, даже такой рост не столь уж критичен (по мне).

Мимопроходящий

05.04.2021 10:32, Fr0sT-Brutal пишет:
> На фоне дистрибов Электрона весом под 200 мегов все эти минимизации смешны))

я надысь ставил TuneIn (радио) на ВедроидТВ.
460 МБ!
радио!

MXplayer занимает 96 МБ.

Кошмар какой... Может, это кеш? В гугломаркете обещает 14,89 Мб
5 апр 21, 15:07    [22304519]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6314
Fr0sT-Brutal
На дельфе тоже никто не пишет системные dll-ки :(
Опять же, если избежать компонентов и классов, то в 500 Кб можно уложить приличной полезности либу. Но вот чуть только понадобится stringlist или stream - еще 500 как с куста. Тем не менее, даже такой рост не столь уж критичен (по мне).
пишут...
"просто подцепить SysUtils" на новых дельфях это сразу больше мегабайта

Maxim Rusov
kealon(Ruslan)
можно, но в любом случае огребёшь по полной, переделка system.pas и обработка исключений вещи довольно нетривиальные

А зачем переделывать System.pas?
убирают оттуда всякие циклические зависимости, что бы линкёр посрезал неиспользуемое
5 апр 21, 15:23    [22304539]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
kealon(Ruslan)
убирают оттуда всякие циклические зависимости, что бы линкёр посрезал неиспользуемое

Речь шла о создании свой System.bpl. Чтобы это сделать - переделывать System.pas не нужно.
5 апр 21, 15:33    [22304549]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Maxim Rusov
Member

Откуда: Москва-Питер
Сообщений: 2483
Fr0sT-Brutal
Вроде всегда так было, по крайней мере с Variants.

Раньше Variants вообще не было. При этом все конвертации вариантов работали...
5 апр 21, 15:36    [22304550]     Ответить | Цитировать Сообщить модератору
 Re: размер DLL смущает, как уменьшить.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 5100
kealon(Ruslan)
пишут...
"просто подцепить SysUtils" на новых дельфях это сразу больше мегабайта

Враньё. Релизные размеры сильно меньше.
5 апр 21, 15:37    [22304552]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить