Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

Компиляция   Найти похожие ветки 

 
PURGEN   (2004-12-05 18:03) [0]

Существуют ли настройки компилятора, с помощью которых можно уменьшить размер EXE. Например убрать неиспользуемые компоненты и т.п.


 
Morfein   (2004-12-05 18:50) [1]

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


 
TButton ©   (2004-12-05 18:51) [2]

SysUtils


 
PURGEN   (2004-12-05 18:53) [3]

SysUtils ???
Удалить модуль из ЮЗЕС что ли?


 
Yanis ©   (2004-12-05 18:54) [4]

Assembler - лучше для мужчины(программиста) нет (с).
Не складно, зато правда! :)


 
begin...end ©   (2004-12-05 18:55) [5]

> [3] PURGEN   (05.12.04 18:53)

Конечно, нафиг он нужен.


 
PURGEN   (2004-12-05 18:56) [6]

Асемблер конечно штука хорошая! Хочешь в ЕХЕ хочешь обратно в код, но Делфя как-то более по душе....


 
novice__man   (2004-12-05 18:59) [7]

Компилятор не включает в исполняемый код не используемые модули.


 
TButton ©   (2004-12-05 18:59) [8]


> SysUtils ???
> Удалить модуль из ЮЗЕС что ли?

а ты его пользуешь?


 
PURGEN   (2004-12-05 18:59) [9]


> begin...end ©   (05.12.04 18:55) [5]

И много сэкономит места....


 
TButton ©   (2004-12-05 19:01) [10]


> И много сэкономит места....

процентов 20 если мне не изменяет память *но это если проект чистый*


 
novice__man   (2004-12-05 19:04) [11]

Проверил и с SysUtils и без размер *.ехе не изменился :)


 
begin...end ©   (2004-12-05 19:04) [12]

> [11] novice__man   (05.12.04 19:04)

ЧТД


 
novice__man   (2004-12-05 19:07) [13]


begin...end ©   (05.12.04 19:04) [12]

> [11] novice__man   (05.12.04 19:04)

ЧТД


???????? :(


 
begin...end ©   (2004-12-05 19:08) [14]

> [13] novice__man   (05.12.04 19:07)

ЧТД = Что и требовалось доказать :-)


 
TButton ©   (2004-12-05 19:08) [15]

QED
Quod Erat Demonstrantum


 
novice__man   (2004-12-05 19:13) [16]

Не, ну ваще. :))

из анегдота:
"... ну как вам сказать, Ламер Масдаевич?"


 
Gloomer ©   (2004-12-06 12:13) [17]


> novice__man   (05.12.04 18:59) [7]
> Компилятор не включает в исполняемый код не используемые
> модули.

Были времена, когда я тоже так думал :-(
Сравните скомпеллированный размер следующих программ
первая
program Project1;

begin
end.


вторая
program Project2;
uses Forms;
begin
end.


Без коментариев :-(
Кстати, если посмотреть исходик forms.pas, то видим
uses Messages, Windows, SysUtils, Classes, Graphics, Menus, Controls, Imm,  ActnList, MultiMon, HelpIntfs;

Так что если есть хоть одна форма, то SysUtils будет присутствовать в ехе-шнике. Вывод - поможет только WinAPI.


 
Anatoly Podgoretsky ©   (2004-12-06 12:18) [18]

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


 
Gloomer ©   (2004-12-06 12:30) [19]

Хорошо, что мешает сделать
program Project2;
uses SysUtils;
begin
end.

Изменение размера все равно есть, хотя, конечно, гораздо меньше.
Я просто высказываюсь против того, что компилятор не включает в используемый код неиспользуемые модули.
Или я неправильно понимаю "неиспользуемые модули", может это не указанные в секции Uses ???


 
Anatoly Podgoretsky ©   (2004-12-06 12:35) [20]

Точно также используешь, смотри Initialisation


 
Gloomer ©   (2004-12-06 12:53) [21]

А слона то я и не заметил :-(  Ну тогда уж там есть еще и finalization, так же использующий код модуля.
Для уменьшения размера ехе могу еще предложить компелировать в более ранних версиях Delphi со всеми вытекающими последствиями несовместимости версий. А вообще интересно проследить зависимость увеличения размера конечного файла от увеличения версии Delphi, в которой производилась конечная компиляция.


 
Amoeba ©   (2004-12-06 14:02) [22]

Можно дополнительно уменьшить размер уже откомпилированного приложения за счет удаления таблицы релокаций утилитой StripReloc.
http://www.jrsoftware.org/striprlc.php

StripReloc is a free (GPL license) command line utility that removes the relocation (".reloc") section from Win32 PE EXE files, reducing their size. Most compilers/linkers (including Delphi) put a relocation section in EXE files, but this is actually not necessary since EXEs never get relocated. Hence, a relocation section only wastes space.

This program is designed for developers to run on their own applications" executables only. It is not recommended that you run StripReloc indiscriminately on all EXEs you come across, because certain programs may rely on their internal structure staying intact.

StripReloc will not run on DLLs because they can get relocated, and thus need a relocation section.

EXEs run through StripReloc work on all Windows OSes since Windows 95 and NT 3.51 (at least). Windows 3.1x with Win32s is not supported.


 
PVOzerski ©   (2004-12-06 16:51) [23]

За счет .reloc много не сэкономишь... Радикальный путь: 1) отказаться от VCL; 2) Если нужно OOP, использовать не классы, о объекты старого образца (там эффективнее отбрасывается "мертвый код" за счет исключения полностью перекрытых виртуальных методов). Именно по этому принципу работает KOL.



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

Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.043 c
1-1101988769
JohnS
2004-12-02 14:59
2004.12.19
Cron Format


4-1099488416
andrey__
2004-11-03 16:26
2004.12.19
NamedPipe


3-1100427250
integer
2004-11-14 13:14
2004.12.19
помогите з запросом


1-1101992289
sten
2004-12-02 15:58
2004.12.19
динамически созданные элементы


1-1102367669
Поручик
2004-12-07 00:14
2004.12.19
Что-то я торможу (





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский