Избавиться от мусора в .exe
Модератор: Модераторы
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
Избавиться от мусора в .exe
Про strip для удаления отладочной информации знают все. Но посмотрел я готовый .exe и вижу в нем иконки от использованных компонентов, например, от TDBF И TMEMds.
Можно ли их как-то удалить?
Можно ли их как-то удалить?
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
Размер бинарника критичен - возможно, его придется пересылать по электронке, и я вынужден исходить из того, что
1. сотня студентов, скачавших, скажем, по 10 мегов, съедят гиг трафика
2. передача 10 мегов в письме будет обозначать письмо около 15 мегов длиной, что практически не реально сделать диалапом - smtp не поддерживает докачку.
С другой стороны, а на фига там вообще эти данные? Посмотрел и поразился - куча информации в текстовом виде, которая вполне могла бы храниться в двоичном или вообще вырезаться при линковке.
Что до упомянутых иконок, то они не смутили бы меня, будь они в двоичном виде, но не в таком:
Насчет смартлинка - попробую, разумеется. Может быть сразу подскажете ключик для "параметров компилятора"?
1. сотня студентов, скачавших, скажем, по 10 мегов, съедят гиг трафика
2. передача 10 мегов в письме будет обозначать письмо около 15 мегов длиной, что практически не реально сделать диалапом - smtp не поддерживает докачку.
С другой стороны, а на фига там вообще эти данные? Посмотрел и поразился - куча информации в текстовом виде, которая вполне могла бы храниться в двоичном или вообще вырезаться при линковке.
Что до упомянутых иконок, то они не смутили бы меня, будь они в двоичном виде, но не в таком:
Код: Выделить всё
static char *tsdfdataset[]={
"22 23 51 1",
"a c #000000",
"t c #000008",
"s c #000010",
"b c #000400",
"c c #000408",
"u c #000410",
"J c #000800",
"v c #000810",
"K c #000c00",
"# c #080408",
"V c #080800",
"T c #080808",
"r c #080c00",
"E c #205dff",
"H c #296929",
"i c #bdbebd",
"n c #bdbec5",
"O c #bdbecd",
"I c #bdc2c5",
"M c #bdc2cd",
"q c #c5c2bd",
"f c #c5c2c5",
"o c #c5c2cd",
"d c #c5c6c5",
"h c #c5c6cd",
"S c #c5c6d5",
"p c #c5cabd",
"U c #c5cad5",
"m c #c5ceb4",
"w c #c5cec5",
"j c #cdc6cd",
"k c #cdcacd",
"g c #cdcad5",
"l c #cdceb4",
"G c #cdcec5",
"e c #cdcecd",
"Q c #e6eeff",
"R c #eee6ff",
"D c #eeeaff",
"A c #eeeeff",
"N c #eef6ff",
"y c #f6f2ff",
"C c #f6f6ee",
"B c #f6f6ff",
"z c #f6faff",
"P c #f6ffff",
"F c #fff2ff",
"L c #fff6ff",
"W c #fffaf6",
"x c #fffaff",
". c #ffffff",
".#aaaaaaabaaabacaabaa.",
".adbefghhiejklmnoplqa.",
".braassstabaaabuvtabb.",
".awa.xyx..ky.z.ABxy.a.",
".aCb.xxDx.d..EEEEEF.b.",
".aGb.HHHH.I.EEEEEEE.a.",
".JCK.ByLL.M.EENzLEE.a.",
".awazHHHH.O..PPQEEEBJ.",
".a.c.xRLAxS..BzEEEB.a.",
".TdazHHHH.UBz.EEExx.a.",
".a.c.xxAL.o...EExA..a.",
".Vda.HHHHBh.yyEEx...a.",
".azc..B...nW.xBx.B.xa.",
".aea.x.B.xk.xxEE...xc.",
".aaTaaactttts.EE.caac.",
"......................",
".EEEE.E.E...E.EEE.EE..",
".E....E..E.E..E...E.E.",
".E....E...E...EE..E.E.",
".EEE..E...E...E...E.E.",
".E....E..E.E..E...E.E.",
".E....E.E...E.EEE.EE..",
"......................"};
Насчет смартлинка - попробую, разумеется. Может быть сразу подскажете ключик для "параметров компилятора"?
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
- NXP
- постоялец
- Сообщения: 187
- Зарегистрирован: 02.01.2008 15:11:56
- Откуда: Воронеж
- Контактная информация:
Troublemaker
upx -9 твой.exe
+сделать загружалку ресурсов из вне (выкинуть форму из exe)
грузить ее из сжатого вида через TDecompressionStream или 7z
http://freepascal.ru/forum/viewtopic.php?t=3285
http://freepascal.ru/forum/viewtopic.php?t=2739
Загружалку я собираюсь сделать, да руки не доходят
Я так понимаю, юзаться все будет под вендой. В таком случае можно и Delphi взять. С размерами у нее будет получше
upx -9 твой.exe
+сделать загружалку ресурсов из вне (выкинуть форму из exe)
грузить ее из сжатого вида через TDecompressionStream или 7z
http://freepascal.ru/forum/viewtopic.php?t=3285
http://freepascal.ru/forum/viewtopic.php?t=2739
Загружалку я собираюсь сделать, да руки не доходят
Я так понимаю, юзаться все будет под вендой. В таком случае можно и Delphi взять. С размерами у нее будет получше
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
Ы-ы...NXP писал(а):+сделать загружалку ресурсов из вне (выкинуть форму из exe)
грузить ее из сжатого вида через TDecompressionStream или 7z
...
Я так понимаю, юзаться все будет под вендой. В таком случае можно и Delphi взять. С размерами у нее будет получше
Уважаемый, пожалуйста, прочтите внимательно начало треда? Тогда поймете, почему ваш ответ лишен всякого смысла.
Из соседнего треда "основы работы с БД" подскажу, что система должна:
1. быть разработана с использованием некоммерческих инструментов (дельфи отпадает)
2. работать как минимум в винде и линуксе (дельфи отпадает с треском и грохотом)
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Troublemaker писал(а):Что до упомянутых иконок, то они не смутили бы меня, будь они в двоичном виде, но не в таком:
Я уже раз писал об этом - необходимо открыть исходный код проекта и удалить из секции uses - все ссылки на пакеты. Полегчает.
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
alexs писал(а):необходимо открыть исходный код проекта и удалить из секции uses - все ссылки на пакеты. Полегчает.
Это какой именно файл?
lpr:
Код: Выделить всё
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces
Forms
{ you can add units after this }, testmemds_u, {MemDSLaz,}
RunTimeTypeInfoControls;
testmemds_u.pp
Код: Выделить всё
uses
Classes, SysUtils, LResources, Forms, Controls, {Graphics,} Dialogs, StdCtrls,
db, memds, DBGrids, DbCtrls;
И что здесь надо убрать?
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
MemDSLaz, - ты его уже зеремил
RunTimeTypeInfoControls - вот это подозрительно.
Но мой совет ещё зависит от правильности разработки самой компоненты. в RxFPC я вынес все ресуры которые не нужны во время работы програмы, а нужны только IDE Lazarus-а в отдельны пакет и модули.
Если же ресурсы времени разработки находятся в модулях времени работы - то совет не поможет.
RunTimeTypeInfoControls - вот это подозрительно.
Но мой совет ещё зависит от правильности разработки самой компоненты. в RxFPC я вынес все ресуры которые не нужны во время работы програмы, а нужны только IDE Lazarus-а в отдельны пакет и модули.
Если же ресурсы времени разработки находятся в модулях времени работы - то совет не поможет.
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
alexs писал(а):RunTimeTypeInfoControls - вот это подозрительно.
Н-да... после его удаления объем .exe с дебаг-инфо уменьшился с 19 до 13 мегов... И исчез весь тот мусор, о котором я говорил, осталось только действительно нужное.
Теперь в развитие темы: хранить ресурсы в исполняемом файле в виде XPM (читай - в виде плайн-текста) удобно, наверное, но накладно: и места требуется больше, и вместо загрузки готового битмапа приходится заниматься его интерпретацией, да и легче исковеркать "изображение".
Есть ли какой-нибудь штатный способ сделать, например, так: вместо вложенных XPM с тремя видами чекбоксов (sbsCheckBox) в гриде, привязать к проекту три несжатых однобитных (8 точек на байт) bitmap-а? И чтобы оно отображалось как в винде, так и под линуксом?
Вообще, буду признателен за ссылку на что-нибудь для начинающих именно в дельфи, чтобы понять идеологию. Мне не требуется глубокое изучение этой системы, главное - успеть за месяц нарисовать свой проект, защититься и спокойно умереть
А чтобы можно было понять меня, предлагаю сравнить документацию по архиватору ARJ и по, скажем, 7zip. Юнг спокойно и методично разъясняет назначение каждого параметра и ключа, приводя по одному-два, иногда - больше, характерных примера. Рошал тоже не скромничает, а вот к более новым программам идет описание в духе: "этот ключ делает то-то." При этом невозможно прояснить, как и что будет происходить в любой другой ситуации. Ну, скажем, что сделает архиватор в случае нехватки места на диске? RAR и 7zip умрут, ARJ и старичок UC2 (если дать соотв. ключики) предложат выйти в шелл и разобраться, куда делось место, чтобы потом продолжить. Брр... надеюсь, это можно понять
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Если тебе это нужно только разово - зачем ты так печёшся оразмере?
Чтобы брать те ресурсы необходимо переписать модуль dbgrids - и желательно сконвертироватьих в png. По большей части они кстати и не используются - просто установи стиль Native у DBGrid-а - и чекбоксы будут рисоваться в соответствии с текущей темой твоей операционки.
Насчёт документации для дельфина - посмотри на delphiplus ссылки - там много. также загляни в королевство дельфи.
Чтобы брать те ресурсы необходимо переписать модуль dbgrids - и желательно сконвертироватьих в png. По большей части они кстати и не используются - просто установи стиль Native у DBGrid-а - и чекбоксы будут рисоваться в соответствии с текущей темой твоей операционки.
Насчёт документации для дельфина - посмотри на delphiplus ссылки - там много. также загляни в королевство дельфи.
- Troublemaker
- постоялец
- Сообщения: 292
- Зарегистрирован: 16.04.2008 13:00:44
- Откуда: Биробиджан, Дальний Восток
- Контактная информация:
См.выше - не исключено, что потом это будет и в самом деле использоваться в "боевых" условиях.alexs писал(а):Если тебе это нужно только разово - зачем ты так печёшся оразмере?
Гм... попробую, обязательно.alexs писал(а):установи стиль Native у DBGrid-а
