Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Если не собирать с , то размер икзешника - 20М. А если поставить галочку и указать, например doa41d102, то размер станет 14М. И это при том что размер doa41d102.bpl - 1.3 M. За счёт чего же так сильно уменьшился икзешник?
30 авг 19, 19:11    [21960822]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Victor Cookin,

rtlXXX.bpl, а вообще, смотри зависимости исполняемого модуля.
30 авг 19, 19:21    [21960830]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Kazantsev Alexey
rtl.bpl?


Но я не просил его включать
30 авг 19, 19:43    [21960850]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Victor Cookin
Но я не просил его включать

Он всегда включается. Вот.
30 авг 19, 19:52    [21960855]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Dimitry Sibiryakov
Member

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

Victor Cookin
Но я не просил его включать

А как, по-твоему, DLL-ка (даже после переименования в BPL-ку) должна жить без своих
зависимостей? Магии не существует.

Posted via ActualForum NNTP Server 1.5

30 авг 19, 20:04    [21960863]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Dimitry Sibiryakov
А как, по-твоему, DLL-ка (даже после переименования в BPL-ку) должна жить без своих
зависимостей? Магии не существует.


Дельфя хотя бы сказать мне должна, что она исключила из икзешника. А то ведь клиенты достанут.
30 авг 19, 20:10    [21960869]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Kazantsev Alexey
Он всегда включается. Вот.


Нет. Если поставить галочку в сабже, но не указать при этом ни одного пакета, то он не включится.
30 авг 19, 20:12    [21960871]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Victor Cookin
Нет. Если поставить галочку в сабже, но не указать при этом ни одного пакета, то он не включится.

Логично, т.к. в этом случае сборка происходит без поддержки пакетов.
30 авг 19, 21:58    [21960928]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Kazantsev Alexey
Логично, т.к. в этом случае сборка происходит без поддержки пакетов.


Недоработочка у них )
30 авг 19, 22:23    [21960938]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
rgreat
Member

Откуда:
Сообщений: 5211
Victor Cookin
Дельфя хотя бы сказать мне должна, что она исключила из икзешника. А то ведь клиенты достанут.
А нефиг пользоваться Link with runtime packages .
30 авг 19, 22:27    [21960939]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 540
Victor Cookin
Kazantsev Alexey
Логично, т.к. в этом случае сборка происходит без поддержки пакетов.


Недоработочка у них )
Серьезно? ))))
31 авг 19, 07:51    [21961012]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Kazantsev Alexey
Victor Cookin
Но я не просил его включать

Он всегда включается. Вот.

Нет только когда он прописан, если нет то не подключается.
31 авг 19, 22:00    [21961305]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Victor Cookin
Dimitry Sibiryakov
А как, по-твоему, DLL-ка (даже после переименования в BPL-ку) должна жить без своих
зависимостей? Магии не существует.


Дельфя хотя бы сказать мне должна, что она исключила из икзешника. А то ведь клиенты достанут.

Поставь JCL там есть утилита, которая показывает откуда модули будут браться.
31 авг 19, 22:02    [21961308]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
rgreat
Victor Cookin
Дельфя хотя бы сказать мне должна, что она исключила из икзешника. А то ведь клиенты достанут.
А нефиг пользоваться Link with runtime packages .

Можно сделать свои run time пакеты со свом блекджеком модулями. Если кроме exe есть dll, то это сильно сокращает общий код программы и позволяет налету подсовывать исправленные модуля из vcl. Да много что еще можно делать bpl.
31 авг 19, 22:04    [21961313]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
ziv-2014
Нет только когда он прописан, если нет то не подключается.

Пропиши любой пакет и проверь.
31 авг 19, 22:45    [21961335]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 4028
У jvcl, а и у всяких cnWizard есть утилита для IDE, которая показывает реально слинкованные в экзешник библиотеки и их размер.
31 авг 19, 22:50    [21961337]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Kazantsev Alexey
ziv-2014
Нет только когда он прописан, если нет то не подключается.

Пропиши любой пакет и проверь.

Я делал свою bpl с delphi rtl и vcl и добавлял в свой проект. Все ссылки на мою bpl, а не на rtlxxx.bpl и vclxxx.bpl.
1 сен 19, 16:48    [21961496]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
ziv-2014
Я делал свою bpl с delphi rtl и vcl и добавлял в свой проект. Все ссылки на мою bpl, а не на rtlxxx.bpl и vclxxx.bpl.

Ну если из зависимостей пакета убрать другие пакеты, логично что весь код будет собираться в него. Только речь шла немного о другом.
1 сен 19, 17:26    [21961509]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Kazantsev Alexey
ziv-2014
Я делал свою bpl с delphi rtl и vcl и добавлял в свой проект. Все ссылки на мою bpl, а не на rtlxxx.bpl и vclxxx.bpl.

Ну если из зависимостей пакета убрать другие пакеты, логично что весь код будет собираться в него. Только речь шла немного о другом.

Тогда о чем речь шла?
1 сен 19, 17:46    [21961512]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
ziv-2014
Тогда о чем речь шла?

Первое сообщение посмотри.
1 сен 19, 17:53    [21961514]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Kazantsev Alexey
ziv-2014
Тогда о чем речь шла?

Первое сообщение посмотри.

Надо специально прописывать rtl и vcl - в пакетах в обязательной порядке.
1 сен 19, 19:48    [21961524]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Вот например http://joxi.ru/brRKGjH7p37ym1
1 сен 19, 19:50    [21961525]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
ziv-2014
Надо специально прописывать rtl и vcl - в пакетах в обязательной порядке.

Если они будут прописаны, тогда и пакет будет собран с соответствующими зависимостями.
1 сен 19, 20:20    [21961530]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Kazantsev Alexey
ziv-2014
Надо специально прописывать rtl и vcl - в пакетах в обязательной порядке.

Если они будут прописаны, тогда и пакет будет собран с соответствующими зависимостями.

Если не указать, то код будет прилинкован к exe или dll.
1 сен 19, 20:28    [21961535]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
ziv-2014
Если не указать, то код будет прилинкован к exe или dll.

О чём я и сказал.
1 сен 19, 20:34    [21961536]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5107
неймспейсы практически убили столь хорошую фичу
2 сен 19, 06:50    [21961605]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
kealon(Ruslan)
неймспейсы практически убили столь хорошую фичу

Каким образом? Учитывая, что в дельфе неймспейсов нет, а есть тупые юнит скоупы.
2 сен 19, 11:53    [21961747]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
kealon(Ruslan)
Member

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

а вы посмотрите размер блока импорта функций, как они названы
2 сен 19, 11:55    [21961748]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
kealon(Ruslan)
а вы посмотрите размер блока импорта функций, как они названы

Не понял... Это печаль о длинных текстовых именах что ли?
2 сен 19, 12:13    [21961759]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Kazantsev Alexey
Не понял... Это печаль о длинных текстовых именах что ли?

Прикола ради, сравнил отношение размера экспортных секций у rtlXXX.bpl до появления юнит скоупов (XE) и в последней версии дельфей (10.3). В XE размер rtl150.bpl 2MB, секция экспорта 500KB - 25%. В 10.3 размер rtl260.bpl почти 13MB, размер секции экспорта 4MB, около 30%. Разница, прямо скажем, невелика, уж на убийство-то точно не тянет.
2 сен 19, 12:48    [21961776]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Kazantsev Alexey
около 30%

Неправильно посчитал, около 36%.
2 сен 19, 12:52    [21961778]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
kealon(Ruslan)
Member

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

сравни с Delphi7, а не с этими переделками
2 сен 19, 13:45    [21961819]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
kealon(Ruslan)
сравни с Delphi7, а не с этими переделками

Я эту версию не использую, поднимать виртуалку для неё лениво. А если там всё сильно лучше, то дело явно не в скоупах юнитов.
2 сен 19, 13:52    [21961825]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
Посмотрел в младшей, что у меня есть - D2006. Размер rtl100.bpl 823KB, размер секции экспорта 256KB (непосредственно таблица чуть больше 255KB), это примерно 31%.
2 сен 19, 14:49    [21961907]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5107
вы секцию импорта смотрите у экзешника, при таких размерах смысл теряется на импорт функции, она обычно сама меньше места занимает, чем название для неё
2 сен 19, 14:53    [21961911]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
kealon(Ruslan)
вы секцию импорта смотрите у экзешника, при таких размерах смысл теряется на импорт функции, она обычно сама меньше места занимает, чем название для неё

Размер секции импорта у exe не даст полной картины. А вот экспортные таблицы пакетов дают (и мы видим, что с появлением скоупов ситуация не сильно изменилась). И таки да, замангленное имя может быть сильно больше размера тела функции. Потому эти таблицы и раздувает, что типов дофига, да у каждого, более-менее сложного, примитивных методов, типа сеттеров и геттеров уйма.
2 сен 19, 15:04    [21961925]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
kealon(Ruslan)
Member

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

а теперь с учётом того, что умный линкёр помер всерьёз и надолго секция импорта дуется на любой чих до максимального размера
и практически всё это попопадёт в "мелкий" экзешник.
ну и зачем такая "оптимизация"?
2 сен 19, 15:14    [21961944]     Ответить | Цитировать Сообщить модератору
 Re: Сильно уменьшается размер Exe файла, если поставить Link with runtime packages  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3732
kealon(Ruslan),

Вот и получается, что проблема (для exe) не в скоупах, а дурном линкере.
2 сен 19, 15:24    [21961958]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить