![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
Как избавить прогу от лишнего мусора ? убрать из нее все неиспользуемое
есть такой код:
как уменьшить ее в размере ? 233 472 байт сейчас, ###) -------------------- I want a perfect soul |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
собственно ничего лишнего и так нет. Да врядли удастся, поскольку индюки содержат в юзесах ссылки на VCL овские модули. Меньше можно сделать тока на KOL или API.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Не вижу ничего плохого в этом размере.
Уменьшить? Пожалуйста: 1. Использовать Icarus - Uses List Analyzer for Delphi. C его помощью можно определить неиспользуемые модули. Правда, иногда он ошибается, но это легко узнается при компиляции. 2. Убрать лишние ресурсы любым редактором. В частности - DVCLAL и PACKAGEINFO. Обычно безболезненно удаляются и рисунки для BitBtn (кроме SpeedUp и SpeedDown). 3. Использовать программы типа PECorrector, убирающие "ненужное". 4. UPX, SoftwareCompress и иже с ними, то есть любой упаковщик (внимание - некоторые могут быть глючными). 5. Забить на это. 233 килобайта - это не много. Одна из последних моих разработок, например, весит 3 метра (парочка включенных в ресурсы скинов неплохо увеличила размер) - и что? Давно прошли те времена, когда программа должна была умещаться на 1.44 дискету И вообще - see DRKB и все остальные FAQ - это один из первых вопросов, освещаемых в них |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Я вам более скажу, ресурсы не грузятся в память пока не нужны, потому экзешник может быть и 50 Мб без проблем, если из них 48 будут ресурсы то все будет быстро работать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
есть противоположное мнение, что ресурсы гразятся сразу и на все время, вместе со всем остальным. Можешь подтвердить твое утверждение? -------------------- Обижено школьников: 8 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
тока при использовании упаковщиков, иначе они отображаются в память, а значит кэшируются только по необходимости. Да возьми и сам проверь. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
ну я думал "отображаются" и значит "загружаеются". Да недопонимание вышло. Ну если говорить про то что реально находится в памяти, а не сбрасывается на диск, то давай скажем что весь большое экзешник (а не только ресурсы) не грузится в память одновременно, когда ее мало. Формально будет правильно
-------------------- Обижено школьников: 8 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
bems, откуда точно не скажу, но впользу этого есть много веских доводов.
Добавлено через 2 минуты и 10 секунд Ресурсы это память ридонли как и секция кода, потому она свопится самим экзешником без помещения в файл подкачки, т.е. фактически не грузиться совсем. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Это решает ОС, а не программа. И что конкретно из экзешника и подгружаемых модулей/библиотек действительно находится в памяти в текущий момент времени - программе неизвестно. Ну, с ресурсами не знаю, а вот секция кода в своей программе (в run-time) модифицируется (т.е. читается/перезаписывается) легко. (имеется ввиду модификация кода не в exe файле, а непосредственно в исполняемом процессе). |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
С каких это пор? На секции кода стоит блокировка ридонли, при попытке туда записать возникает AV. Если снимать блокировку, то сам виноват, ОС будет вынуждена сбрасывать такой код в своп файл. Главное что ресурсы напрасно не загружают ОЗУ, потому их можно смело использовать и не стесняться увеличения размера экзешника за счет ресурсов или неиспользуемого кода, это относиться и к другой константной памяти. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Выходит, функцию VirtualProtect придумали зря? Ткните носом в MSDN, где это написано. Согласен. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Ну если не в своп то два варианта: или в оригинальный файл, или просто пометить как свободную. Первое это изменение программой своего файла (что без особых ухищрений не бывает), второе - потеря куска данных во время работы. Ни того ни другого не происходит.
Добавлено через 1 минуту и 45 секунд Еще забыл третий вариант - запретить выгружать из оперативы - для юзермодного приложения много чести -------------------- Обижено школьников: 8 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
bems, угу именно из этих же соображений.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Alexeis, ну ты показал что ресурсы экономичны к оперативе. Но само виртуальное АП то же ведь не резиновое. И в этом смысле ресурсы загружены всегда
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |