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

Вниз

уменьшение размера exe   Найти похожие ветки 

 
Delphist2   (2010-03-22 12:37) [0]

Для версий 2006 и старше дают такой совет:

{$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or
 IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or
 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

Что я здесь сделал?

   * IMAGE_FILE_RELOCS_STRIPPED - отрезал релоки
   * IMAGE_FILE_DEBUG_STRIPPED - Выбросил из ехе Debug информацию
   * IMAGE_FILE_LINE_NUMS_STRIPPED - Выбросил из exe информацию о номерах строк
   * IMAGE_FILE_LOCAL_SYMS_STRIPPED - Выбросил local symbols
   * IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP - При запуске exe с компакта, флэшки, других извлекаемых устройств, считать exe в свап и запустить оттуда. Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой...
   * IMAGE_FILE_NET_RUN_FROM_SWAP - аналогично предыдущей, только для сетевых дисков

Как сделать это для D7? Есть ли в D7 какие-то еще приемы для уменьшения exe?


 
Anatoly Podgoretsky ©   (2010-03-22 13:04) [1]

> Delphist2  (22.03.2010 12:37:00)  [0]

А цель/задача то какая, ведь уменьшение размера это не цель.


 
Delphist2   (2010-03-22 13:28) [2]

Ну почему же? Вполне себе цель.


 
oldman ©   (2010-03-22 13:31) [3]


> Ну почему же? Вполне себе цель.


Суперпуперпрограмма не влазивает на дискету?


 
Anatoly Podgoretsky ©   (2010-03-22 13:44) [4]

> Delphist2  (22.03.2010 13:28:02)  [2]

Это само цель.


 
Anatoly Podgoretsky ©   (2010-03-22 13:46) [5]


> Суперпуперпрограмма не влазивает на дискету?

А вот это уже цель, но решается иначе переходом на использование Интернет или CD дисков, в особо сложных случаях на DVD.


 
oldman ©   (2010-03-22 13:51) [6]


> Anatoly Podgoretsky ©   (22.03.10 13:46) [5]


Архиватор спасет отца русской демократии?


 
Сергей М. ©   (2010-03-22 14:19) [7]


> Есть ли в D7 какие-то еще приемы для уменьшения exe?


Там где ты взял этот "совет", приведена ссылка на утилиту StripRelocs.
Исх.код утилиты прилагается.
Пришпандорить это хозяйство к IDE средствами OpenTools API большого напряга извилин не требует)


 
Б   (2010-03-22 14:32) [8]


> А цель/задача то какая, ведь уменьшение размера это не цель.


1) Про demoscene вижу и не слышали.
  3D-Шутер - kkriger. 98 kb!
  http://www.theprodukkt.com/kkrieger
2) Лёгкие утилиты смотрятся симпотичнее.
3) Написание  вирусов. ;)

> Есть ли в D7 какие-то еще приемы для уменьшения exe?
1) Использовать KOL.
2) Вот так можно уменьшить exe-шник D7 до 524 byte!
http://xproger.mentalx.org/old/?id=1&page=0&doc=delphi_min


 
Б   (2010-03-22 14:42) [9]

> Delphist2   (22.03.10 12:37)  
> И на сколько уменьшился exe.? [0]

И на сколько уменьшился exe.?


 
Игорь Шевченко ©   (2010-03-22 14:48) [10]

Б   (22.03.10 14:32) [8]

Delphi - это средство быстрой разработки приложений, а не меряние размером.

Пиши на ассемблере, получишь небольшой размер, вплоть до 1-го байта (меньше никак).


 
Б   (2010-03-22 14:59) [11]

> Игорь Шевченко ©   (22.03.10 14:48) [10]

>
> Delphi - это средство быстрой разработки приложений, а не
> меряние размером.


Многие используют Дельфю и не для визуального программирования.
Delphi - пользуется популярностью для написания shareware-игр.
Из визуального там только программно созданное окно и всё.
Зачем тянуть туда увесистый VCL?

> Пиши на ассемблере, получишь небольшой размер, вплоть до 1-го байта (меньше никак).

Зачем такое извращение?
Достаточно, более-менее разумного уменьшения.
Время, потраченное на асмо-разработку не окупает получаемый размер.


 
sniknik ©   (2010-03-22 15:07) [12]

> вплоть до 1-го байта (меньше никак).
один нельзя, помню даже в dos команда выхода занимала 2 байта... вроде. а самый минимальный размер рабочей программы был 7 байт (вызывала перезагрузку)

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


 
Б   (2010-03-22 15:15) [13]


> sniknik ©   (22.03.10 15:07) [12]
> время потраченное на дельфи-уменьшение-размера не окупает
> зарплату программиста...


Мне хватило пару часов. ;)


 
Игорь Шевченко ©   (2010-03-22 15:20) [14]

sniknik ©   (22.03.10 15:07) [12]


> один нельзя


можно


 
Игорь Шевченко ©   (2010-03-22 15:22) [15]

Б   (22.03.10 14:59) [11]

А кто заставляет игру писать на VCL ? Ты в какое-то странное гестапо попал...


 
Б   (2010-03-22 15:31) [16]


> Игорь Шевченко ©   (22.03.10 15:22) [15]
> Б   (22.03.10 14:59) [11]
>
> А кто заставляет игру писать на VCL ?


А что тогда подразумевалось под
"Delphi - это средство быстрой разработки приложений," - VCL?
И под "а не меряние размером".


 
Б   (2010-03-22 15:33) [17]


> Б   (22.03.10 14:32) [8]


> уменьшить exe-шник D7 до 524 byte!

Как сделать eXe. в D7 ещё меньше, просьба поделиться.


 
Anatoly Podgoretsky ©   (2010-03-22 15:33) [18]

> Б  (22.03.2010 14:32:08)  [8]

Вот у тебя цели показаны

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


 
Anatoly Podgoretsky ©   (2010-03-22 15:35) [19]

> sniknik  (22.03.2010 15:07:12)  [12]

Можно, единственная команда RET без параметров.


 
Anatoly Podgoretsky ©   (2010-03-22 15:36) [20]

> Игорь Шевченко  (22.03.2010 15:22:15)  [15]

Я же и говорю самоцель, психологическое извращение.


 
Б   (2010-03-22 15:43) [21]

1) demoscene - это искусство.
 2) Что не нравится?
 3) Не всегда.


 
Amoeba_   (2010-03-22 15:44) [22]


> Delphist2   (22.03.10 12:37)
>
> Для версий 2006 и старше дают такой совет:
>
> {$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED
> or
>  IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED
> or
>  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
>
> Что я здесь сделал?
>
>    * IMAGE_FILE_RELOCS_STRIPPED - отрезал релоки
>    * IMAGE_FILE_DEBUG_STRIPPED - Выбросил из ехе Debug информацию
>    * IMAGE_FILE_LINE_NUMS_STRIPPED - Выбросил из exe информацию
> о номерах строк
>    * IMAGE_FILE_LOCAL_SYMS_STRIPPED - Выбросил local symbols
>    * IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP - При запуске exe
> с компакта, флэшки, других извлекаемых устройств, считать
> exe в свап и запустить оттуда. Полезно, если нужно запустить
> программу с компакта, а потом попросить вставить другой.
> ..
>    * IMAGE_FILE_NET_RUN_FROM_SWAP - аналогично предыдущей,
>  только для сетевых дисков
>
> Как сделать это для D7? Есть ли в D7 какие-то еще приемы
> для уменьшения exe?
>

Не включать отладочную информацию + http://www.jrsoftware.org/striprlc.php


 
Anatoly Podgoretsky ©   (2010-03-22 15:48) [23]


> Не включать отладочную информацию

А она там есть?


 
GDI+   (2010-03-22 15:49) [24]


> 2) Вот так можно уменьшить exe-шник D7 до 524 byte!
> http://xproger.mentalx.org/old/?id=1&page=0&doc=delphi_min


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


 
GDI+   (2010-03-22 15:53) [25]


> Б   (22.03.10 14:59) [11]
>
> Многие используют Дельфю и не для визуального программирования.
> Delphi - пользуется популярностью для написания shareware-
> игр.
> Из визуального там только программно созданное окно и всё.
> Зачем тянуть туда увесистый VCL?


Не нужен VCL  пишите на С++. Даже с использованием stl размер релизного файла со статической линковкой библиотек около 300 Кб.


 
Б   (2010-03-22 15:56) [26]


> GDI+   (22.03.10 15:53) [25]
> Не нужен VCL  пишите на С++.


Прочитай лучше.
"Из визуального там только программно созданное окно и всё.
Зачем тянуть туда увесистый VCL?"

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

Так сделай, чтобы что-то делала.


 
GDI+   (2010-03-22 16:18) [27]

> Так сделай, чтобы что-то делала.

для этого нужны сторонние библиотеки в которых всегда много мусора кроме того что нужно. Или вы предпочитаете все сами писать?


 
Б   (2010-03-22 16:22) [28]


> GDI+   (22.03.10 16:18) [27]


Это проблема библиотек.


 
sniknik ©   (2010-03-22 16:32) [29]

> Мне хватило пару часов. ;)
программа в 20 строк? тогда и этого много. а если будет на 50тыс строк (средняя прога по размеру в конторе), и больше?

Игорь Шевченко ©   (22.03.10 15:20) [14]
sniknik ©   (22.03.10 15:07) [12]
>> один нельзя
> можно
говорим про программу или просто файл?
так в программе даже nop (однобайтная команда) просто повесит комп (в doc так и было, сейчас в винде конечно не так,  всякие защиты сработают и снимут по ошибке). т.е., имхо, программой можно называть только то что хотя бы возвращает управление. т.е. для dos это 2 байта (+ если нужно параметр задавать, не помню тогда еще 2 минимум).
в общем не получится программы из 1 байта, как ни крути. и кстати это для *.com, т.е. уже отступление, а для exe с его заголовком и того не получится.


 
sniknik ©   (2010-03-22 16:34) [30]

> Можно, единственная команда RET без параметров.
она же двухбайтная, сама по себе.  (int 20 насколько помню) не?


 
Anatoly Podgoretsky ©   (2010-03-22 16:39) [31]

> GDI+  (22.03.2010 16:18:27)  [27]

Дельфи имеет все необходимое, что бы писать программы начиная от 16 кб. А для мазохистов есть КОЛ, тогда еще меньше, но сложнее.


 
Б   (2010-03-22 16:41) [32]


> sniknik ©   (22.03.10 16:32) [29]
> > Мне хватило пару часов. ;)
> программа в 20 строк? тогда и этого много. а если будет
> на 50тыс строк (средняя прога по размеру в конторе), и больше?
>


Я говорю про не визуальное программирование.
(С VCL размер проги особо не уменьшишь)


 
Игорь Шевченко ©   (2010-03-22 17:46) [33]

sniknik ©   (22.03.10 16:32) [29]


> говорим про программу или просто файл?


Говорим про исполняемый файл


> в общем не получится программы из 1 байта, как ни крути


Получится. Я же делал :)


 
KilkennyCat ©   (2010-03-22 17:46) [34]

гвозди можно забивать фотоаппаратом, но это экономически невыгодно.
Это я когда-то в детстве прочитал в "Науке и Жизни", осознал, и всегда помню, чего и другим желаю.
Для написания определенного софта есть определенные средства, все остальное - извращение. Если от скуки или ради любопытства - можно понять, в остальных случаях можно лишь посоветовать сходить к психиатру.


 
sniknik ©   (2010-03-22 19:42) [35]

> Получится. Я же делал :)
ну так покажи как.


 
boa_kaa ©   (2010-03-22 20:30) [36]

переиначивая бородатый анекдот:

Программы - это единственное, чем программисты хвастаются, что у них меньше


 
Правильный$Вася   (2010-03-22 20:34) [37]


> Программы - это единственное, чем программисты хвастаются,
>  что у них меньше

ну почему же? еще временем разработки


 
Игорь Шевченко ©   (2010-03-22 20:39) [38]


> ну так покажи как.


файл содержит один байт $C3
Естественно .com


 
сыф   (2010-03-22 21:11) [39]

у меня невизуалка на 15000 строк кода = 90 кб, не использую лишние модули. Визуалка дельфи тянет за собой сразу classes около 90 кб форм и тд довешивают до 200. Сам смотри, зачем уменьшать размер файла если только это не демосцен, хотя демосцен на дельфях врядли кто пишет.. хотя видел или это вирус, тс херь.


 
Andy BitOff ©   (2010-03-22 21:23) [40]

> Игорь Шевченко ©   (22.03.10 20:39) [38]
> файл содержит один байт $C3
> Естественно .com

Программа не запускается. Win7 ;)


 
Игорь Шевченко ©   (2010-03-22 21:29) [41]

Andy BitOff ©   (22.03.10 21:23) [40]

64 бита ?

Лень перегружаться в Win7-32, на XP-32 работает


 
Andy BitOff ©   (2010-03-22 21:32) [42]

Ага, 64.
Но думаю не поэтому, здесь даже некоторые 32 под дос не работают, которые и под хр нормально запускались.


 
Anatoly Podgoretsky ©   (2010-03-22 21:36) [43]

> Andy BitOff  (22.03.2010 21:23:40)  [40]

Ну и что, наверно крест на .сом поставили, ты в досе пробуй.


 
Andy BitOff ©   (2010-03-22 21:38) [44]

Сейчас попробую ;)


 
Б   (2010-03-22 21:49) [45]


> сыф   (22.03.10 21:11) [39]


> Сам смотри, зачем уменьшать размер файла если только это
> не демосцен, хотя демосцен на дельфях врядли кто пишет..
>  


Об применении я уже говорил в [8]. + shareware игры.
На счёт демосцены... вот пример на Делфях:
http://xproger.mentalx.org/old/?id=2&page=3


 
Andy BitOff ©   (2010-03-22 21:51) [46]

Работает. Всмысле никаких ошибок, нормально возврашается в дос.


 
Игорь Шевченко ©   (2010-03-22 21:53) [47]

Andy BitOff ©   (22.03.10 21:32) [42]

В 64 никакие com не работают.


 
GDI+   (2010-03-22 22:50) [48]


> Игорь Шевченко ©   (22.03.10 21:53) [47]
>
> Andy BitOff ©   (22.03.10 21:32) [42]
>
> В 64 никакие com не работают.


В DosBox должно работать.


 
Кто б сомневался ©   (2010-03-23 00:20) [49]


> * IMAGE_FILE_RELOCS_STRIPPED - отрезал релоки
> >    * IMAGE_FILE_DEBUG_STRIPPED - Выбросил из ехе Debug
> информацию
> >    * IMAGE_FILE_LINE_NUMS_STRIPPED - Выбросил из exe информацию
>
> > о номерах строк
> >    * IMAGE_FILE_LOCAL_SYMS_STRIPPED -


Перечисленное есть в опциях проекта, во всех версиях Delphi, по крайней мере с пятой точно .
Вообще, Анатолий Подгорецкий, раз вы не знаете, я напомню, что релизная версия программы должна идти без Debug инфы (если она не нужна для спец. целей конечно) и LOCAL_SYMS

Отрубать надо также Assertions , Ref Info, и разные Cheking типа - IO, Overflow, Range.


 
Германн ©   (2010-03-23 01:40) [50]


> Отрубать надо также

Ничего отрубать не нужно. Всё и так нормально работает.


 
Кто б сомневался ©   (2010-03-23 03:15) [51]


> Ничего отрубать не нужно. Всё и так нормально работает.


В релизной версии нужно. Для чего, написано в хелпе.


 
Германн ©   (2010-03-23 03:18) [52]


> Кто б сомневался ©   (23.03.10 03:15) [51]
>
>
> > Ничего отрубать не нужно. Всё и так нормально работает.
>
>
>
> В релизной версии нужно. Для чего, написано в хелпе.
>

Ну да. В "релизной версии" нужно.


 
Германн ©   (2010-03-23 03:56) [53]


> Германн ©   (23.03.10 01:40) [50]
>
>
> > Отрубать надо также
>
> Ничего отрубать не нужно. Всё и так нормально работает.
>


 
KilkennyCat ©   (2010-03-24 00:13) [54]

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


 
Дмитрий С ©   (2010-03-24 04:17) [55]

А для чего нужна relocation (".reloc") section ?

ps. Не в размерах, конечно, дело, но когда десяток форм весит метра полтора, это уже слишком. Чего там на полтора метра?


 
Anatoly Podgoretsky ©   (2010-03-24 09:18) [56]

> Дмитрий С  (24.03.2010 04:17:55)  [55]

Там ООП


 
Andy BitOff ©   (2010-03-24 09:58) [57]


> Дмитрий С ©   (24.03.10 04:17) [55]
> ... но когда десяток форм весит метра полтора, это уже слишком.

Хм...
У меня одна форма, а экзешник весит 20 метров. Не в формах дело ;)



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

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

Наверх




Память: 0.62 MB
Время: 0.057 c
15-1273077614
Вася
2010-05-05 20:40
2010.08.27
Передача с компьютера на телевизор


15-1267133405
Юрий
2010-02-26 00:30
2010.08.27
С днем рождения ! 26 февраля 2010 пятница


15-1267253714
Григорьев Антон
2010-02-27 09:55
2010.08.27
Умер Архангельский


15-1271910862
test
2010-04-22 08:34
2010.08.27
Spark 10.2


6-1217592758
user
2008-08-01 16:12
2010.08.27
Как перебрать все файлы с FTP ?