Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

О результате трудов - откомпилированных файлах ... [D7, D2005, XP]


Страницы:   1 2 3

User ©   (2008-07-19 23:07:00) 

Не секрет, что компилятор Delphi в результирующие файлы впихивает все, что надо и, что самое неприятное, что не надо. Дабы в этом убедиться, достаточно откомпилтровать пустышку в виде формы и используя только Forms. При просмотре в eXeScope можно увидеть и Bitmap из 11 картинок, и Dialog (DLGTEMPLATE), и String (11 записей), RCData (в полном составе, включая TFORM1 в виде dfm), стандартные курсоры, ну и, конечно - иконка.
Так вот, есть ли какие-то:
- установки компилятора (-$O+ присутствует), чтобы не включать лишнего в компилируемый файл,
- внешние программы (не упаковщики РЕ), чтобы исключить ненужности из откомпилированного файла.


Anatoly Podgoretsky   (2008-07-21 09:56:00) [21]

Лишь бы не работать!


Ega23   (2008-07-21 09:54:00) [22]

Везёт некоторым...
На такую дурь время есть...


Anatoly Podgoretsky   (2008-07-21 08:43:00) [23]

> Loginov Dmitry  (21.07.2008 7:59:28)  [28]

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


Loginov Dmitry   (2008-07-21 07:59:00) [24]

> если кому интересно, нашел XN Resource Editor


ресурсы кушают место горазно меньше, чем "мертвый" код, посему бесполезно.
Забей на это. Или юзай KOL. Проще забить, имхо.


Amoeba   (2008-07-21 00:58:00) [25]


> User   (21.07.08 00:41) [26]

Это точно: лишнего времени у нас в избытке.


User   (2008-07-21 00:41:00) [26]

> Плохиш ©   (20.07.08 23:07) [23]- не вопрос, кому что надо ...

> 1. Переписываешь классы VCL, включая в код только нужную
> функционаольность.
- в большинстве случаев я так и делаю, правда не глубоко копаю ...

... близко к теме, если кому интересно, нашел XN Resource Editor (www.wilsonc.demon.co.uk/d10resourceeditor.htm) - содержатся исходники - можно поразбираться. Единственное - просматриваются только ресурсы РЕ-файлов, и не нашел один юнит (ExVirtualStringTree) ...


Тын-Дын   (2008-07-20 23:53:00) [27]


> User   (19.07.08 23:07) 


Решение простое:
1. Переписываешь классы VCL, включая в код только нужную функционаольность.
2. Классы пишешь так, чтобы можно было их настраивать - опять же выбирать функциональность.

Например

program Project;

//uses
//interface
type
 TVCLClass1=class(TObject)
{$IFDEF param1}
    FVCLObj1: String;
{$ENDIF}
{$IFDEF param2}
    FVCLObj2: String;
{$ENDIF}
 public
{$IFDEF param1}
    constructor Create;
{$ENDIF}
{$IFDEF param2}
    constructor Create;
{$ENDIF}
 end;

{ TVCLClass1 }

{$IFDEF param1}
constructor TVCLClass1.Create;
begin

end;
{$ENDIF}
{$IFDEF param2}
constructor TVCLClass1.Create;
begin

end;
{$ENDIF}

begin
end.


3. При компиляции любого проекта устанавливаешь нужные параметры
4. Наслаждаешься.

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


Тын-Дын   (2008-07-20 23:32:00) [28]


> Враньё, дальше читать смысла нет.


С чего бы это?


Плохиш   (2008-07-20 23:07:00) [29]


> User   (19.07.08 23:07)  
> Не секрет, что компилятор Delphi в результирующие файлы
> впихивает все, что надо и, что самое неприятное, что не
> надо.

Враньё, дальше читать смысла нет.


User   (2008-07-20 22:25:00) [30]

> но автор рано остановился - он пошел спрашивать на форуме
> вместо того, чтобы попытаться что-то сделать самому и доложить
> результаты.

что я должен был сделать и о каких результатах я должен был докладывать?


Игорь Шевченко   (2008-07-20 21:03:00) [31]

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


Тын-Дын   (2008-07-20 19:09:00) [32]


> User   (20.07.08 18:07) [19]
> ... перегиб 8-|


Желание выкинуть всё "лишнее" может возникнуть только лишь от безделья.
В том случае, когда необходимо достижение конечной цели - разработка продукта с нужной функциональностью, времени заниматься ерундой просто нет.


User   (2008-07-20 18:07:00) [33]

... перегиб 8-|


sniknik   (2008-07-20 16:48:00) [34]

ну, тогда совет
не используй ООП, т.к. наследуясь от обьекта ты включаешь его "лишний" код (/ресурсы) в программу,
советовали KOL, тоже не используй, наверняка там тоже лишнее есть (ООП используется, значит есть),
не используй модули, и не дай бог не вкладывай их друг в друга, т.к. просто прописав их в uses ты можеш включить "лишний" код из них (или часть) в свою программу (смотря что там в его инициализации прописано),
не используй dll (не говоря уже о COM/ActivX), т.к. всего изза одной функции загружается целая библиотека/обьект,
не используй winapi, т.к. вызывая какуюнибудь функцию из него нет уверенности, что ней не используется вызовы других "лишних" функций из него самого (даже наоборот есть гарантия, т.к. процедурный подход подразумевает писать код в одном месте, и использовать где понадобиться)...

дельфи можно использовать исключительно как компилятор, убрав(переписав) предварительно обязательные модули (system и еще какойто, не помню...), лучше всего на пустышки (добьешся полной "нерабочести" программы, зато ничего "лишнего")...

и еще подумай об операционной системе... она то не лишняя случаем?

пиши все сам! и лет так через 10-20 мы увидим, может быть, жутко устаревшее творение, но без "лишнего" кода. да и то вряд ли, т.к. сам будеш повторятся в конце концов, и наплодишь теперь уже действительно лишнего кода.


User   (2008-07-20 12:40:00) [35]

> Что'то непойму. Вам это, так называемое, "лишнее" спать
> не дает?
- иногда ..., бывает снится ;-)
Если быть точнее - это "подкоп" в сторону защищенности (здесь не хотелось подымать данную тематику) ...


Palladin   (2008-07-20 12:24:00) [36]

Что'то непойму. Вам это, так называемое, "лишнее" спать не дает?


User   (2008-07-20 10:12:00) [37]

> sniknik ©   (20.07.08 01:05) [12]
- согласен с тем, что непрафильное наименование "пучтышка" - "пустая форма" точнее ...
- не совсем согласен с тем, что включается только нужное (см. первую часть > User   (20.07.08 00:33) [9]).
как вариант "борьбы" с ООП - переделка (подточка) классов под реальный проект - например, для "пустой формы" убрать "лишнее" из TCustomForm( TForm) ...


korneley   (2008-07-20 09:36:00) [38]


> Германн ©   (20.07.08 01:18) [13]
> > sniknik ©   (20.07.08 01:05) [12]В принципе можно кое-
> что выбросить. И Борланд (Код Жира) что-то делают в этом
> направлении.Меня приятно удивило, что размер EXE-шника в
> BDS2006 стал меньше, чеи в Д6. Но это такие копейки, что
> и говорить не стоит.

 Меня тоже удивило, но в другом, и приятно :) У меня "соседи" просто, ничего дополнительно не оптимизируя, откомпилировали "расчётный" проект в BDS2006. Код, правда, стал чуть-чуть "пожирнее", но считает почему-то, раза в полтора быстрее, по сравнению с тем же, но из-под D7. Я считаю, неплохой компромисс.


Германн   (2008-07-20 01:18:00) [39]


> sniknik ©   (20.07.08 01:05) [12]

В принципе можно кое-что выбросить. И Борланд (Код Жира) что-то делают в этом направлении.
Меня приятно удивило, что размер EXE-шника в BDS2006 стал меньше, чеи в Д6. Но это такие копейки, что и говорить не стоит.


sniknik   (2008-07-20 01:05:00) [40]

> достаточно включить в конечный файл только действительно нужное
включается и так только нужное, то что ты указываешь и используешь в программе, в явном или неявном виде.

> достаточно откомпилтровать пустышку в виде формы и используя только Forms.
это уже не пустышка если используется целый Forms... + все что использует он (апликейшн и т.д.).
пустышка это
begin
end.

в dpr. достаточно проверить и убедиться, не так уж там и много "лишнего".


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо