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

Вниз

уменьшение размера 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.59 MB
Время: 0.063 c
15-1264800605
Юрий
2010-01-30 00:30
2010.08.27
С днем рождения ! 30 января 2010 суббота


15-1265104819
brother
2010-02-02 13:00
2010.08.27
Чем разрезать файл?


2-1268471112
Тофер
2010-03-13 12:05
2010.08.27
Как подать звуковой сигнал с делфи?


2-1271760916
Irisss
2010-04-20 14:55
2010.08.27
Панель иконок


15-1272949646
KSergey
2010-05-04 09:07
2010.08.27
Google code: только OpenSource или нет?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский