Форум: "Прочее";
Текущий архив: 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