Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.18;
Скачать: CL | DM;

Вниз

Размер EXE. Опять размер   Найти похожие ветки 

 
REA   (2002-03-25 10:34) [0]

Замечено, что от версии к версии размеры exe в Delphi пухнут, что в целом не удивительно. В Delphi 6 зачем-то создается несколько секций в заголовке PE для прилинкованных статически BPL. Линковка при загрузке производится по именам функций типа @TCustomForm@WantChildKey$qqrp17, что занимает до 60% процентов от объема приложения. Спрашивается: нафига?
Это интерпретатор что-ли? {$M-} разумеется не помогает, потому как RTTI тут не при чем, хотя она тоже на размер ощутимо влияет.
Названия компонентов тоже в явном виде. Полностью отключить RTTI я не рискую. Неужели нельзя придумать Smart RTTI, который при компиляции определял бы - надо включать RTTI в класс или нет?
Упаковка ресурсов конечно помогает, но почему-бы не встроить это в компилятор? А OC сама паковать ресурсы не умеет?
Вобщем мой exe, который раньше занимал 70k, весит уже 450k (c RunTime packages) и дальше думаю будет расти даже без изменений кода.


 
drpass ©   (2002-03-25 10:55) [1]

Ну и что? IMHO размер, который файл занимает на диске, никакой роли сейчас не играет, времена ХТ и 286 уже давно прошли. 200КВ или 500КВ - какая разница? Зато важна эффективность кода, скорость его выполнения. И тут Delphi6 даст фору всем предыдущим версиям Delphi, да и во многих случаях С++


 
vuk ©   (2002-03-25 11:25) [2]

>Спрашивается: нафига?
Вам известен другой способ динамически загрузить DLL и получить адрес необходимой функции кроме как по имени? Да и RTTI здесь ни при чем.

>Полностью отключить RTTI я не рискую.
Да и не сможете.



 
McSimm ©   (2002-03-25 11:31) [3]

Сомнение вызывает, что только из-за перехода на D6

> exe, который раньше занимал 70k, весит уже 450k

У меня много проектов переведено на D6. Максимальное увеличение - 30%


 
Anatoly Podgoretsky ©   (2002-03-25 21:23) [4]

А вот это вообще вызывает огромное сомнение "дальше думаю будет расти даже без изменений кода.", дрожжи что ли


 
Aleks1   (2002-03-26 02:41) [5]

2 Anatoly Podgoretsky © (25.03.02 21:23)
>А вот это вообще вызывает огромное сомнение "дальше думаю будет >расти даже без изменений кода.", дрожжи что ли

Сумлеваюсь я, однако, что Вы ответили "хорошо подумав". Имхо ЕХЕ-шник, рос, растет и будет расти с каждой новой версией компилятора.


 
REA   (2002-04-03 15:14) [6]

Ну например символы он сохраняет уже как Multibyte - а это уже в два раза больше, чем нужно нормальному некитайскому человеку.
А линковать с DLL можно было бы и по номеру. В крайнем случае создать Hash на функции. Мне не важно как функция называется в Exe и DLL OpenMyLibAndRun или OML, главное лишь бы уникально было. И работать кстати быстрее будет. Что же мне теперь короткие переменные писать всегда?

>А вот это вообще вызывает огромное сомнение "дальше думаю будет расти даже без изменений кода.", дрожжи что ли

Вот именно что дрожжи какие-то. Мне не нужен их COM и DCOM в 80% случаев - так вот нет - получи и распишись - неотъемлемая часть System. Сейчас еще .Net какой-нибудь туда гвоздиком прибьют и т.п. Картинки кстати тоже в кнопки хоть руками грузи - ImageList не помогает - хранит все в коде прямо. Тридцать кнопок BitBtn с одинаковой картинкой и exe уже ощутимо распух.


 
drpass ©   (2002-04-03 15:20) [7]

За все надо платить. В данном случае ты платишь за быстроту создания приложения. Если тебе хочется чего-нибудь более компактного, ничто не запрещает использовать WinAPI, и в этом случае твое приложение будет крохотным и быстрым. Но руками придется поработать намного больше


 
Anatoly Podgoretsky ©   (2002-04-03 15:27) [8]

Anatoly Podgoretsky © (25.03.02 21:23)
Хорошо подумал, у него будет расти не от изменения версии, а сам по себе, прочитай еще раз его постинг. Во вторых он явно о чем то умалчивает, переход с версии на версию не даст прироста в 70 до 450 кб, а вот MBO я верю


 
VID ©   (2002-04-03 16:46) [9]

to drpass:
EXE должен быть максимально маленьким. Клмпилятор OP должен уметь делать это если таковое возможно...
А вдруг, например, программер захочет выложить свой прогу в инет...
Конечно есть люди, для которых скачать 500 или 70 КБ не представляет никакой разницы. Но есть и другие... у которых поременка, у которых коннект на 9600-14400... Им уже есть разница.


 
dymka ©   (2002-04-03 17:11) [10]

2VID: а вдруг да если... мне зачастую нужно сделать прогу за один месяц... и мне плевать на размер... винты щас большие...
А если человек хочет выложить прогу в инет, или еще хуже - продать, то пусть будет добр пишет ее так, как хочет продать...
Я понимаю стремление сделать исполняемый код небольшим, но тут зачастую руководствуются правилом - нужна скорость разработки - плати объемом... можно еще писать на асме...


 
REA   (2002-04-04 11:23) [11]

Вообще-то если продукт серьезный, за месяц его не сделать. В данном случае у меня более 100 plugin dll и порядка 15 exe. Так что в сумме очень немало - память-то не резиновая (а менеджер памяти микрософта и совсем сводит ее на нет через сутки активной работы). На асме сам понимаешь много не напишешься - только ключевые моменты.
А вообще-то форум перерастает в демагогию - типа придется смириться. Я же ожидал дельных советов, как уменьшить размер не прибегая к asm. Это все понятно за что платим и чем, но все должно быть разумно - хочу плачу, хочу нет.
Кстати в BitBnt пришлось сделать картинки отдельно (не в actions) и попытаться унаследовать все от одной формы (что окончательно не удалось, но размер все же сократило), но это в целом проблемы не решает. Конечно 70к - это exe упакованный паковщиком ресурсов - нормальный где-то 200-250 был (с картинками как ресурсы) на Delphi 4. Мне удавалось выкинуть много лишнего из системных файлов и сократить размер до 100к, но в чужой код лезть - это дело неблагодарное.


 
dymka ©   (2002-04-04 11:52) [12]

Есть еще библиотека KOL. Сам не пробывал, но авторы утверждают, что код сильно сокращается...
http://bonanzas.rinet.ru/rindex.htm


 
vrRaven   (2002-04-07 19:33) [13]

Я полностью согласен с drpass!
Времена каменного века прошли, и сейчас размер ни имеет особого значения!



Страницы: 1 вся ветка

Текущий архив: 2002.04.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
7-57898
AlexanderV
2002-01-23 10:15
2002.04.18
Получение информации о правах текущего пользователя


3-57618
veronika
2002-03-28 09:48
2002.04.18
Можно ли с помощью Update добиться того, чтобы записи из таблицы


1-57711
[MC]NuClon
2002-04-06 14:48
2002.04.18
SMTP


1-57784
Pinochet
2002-04-06 10:14
2002.04.18
Опять к вопросу об алгоритме


1-57700
kull
2002-04-08 00:12
2002.04.18
Как перевести string в другой charset?