Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Оптимизация размера программ (EXE)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разбираясь с темой наталкивался на разные документы и исходники. Решил обобщить все в одном топике, так как постоянно встречаю вопросы об оптимизации то там, то сям.
Ниже будут ссылки на документы и файлы.
 
Добавлено
самая лучшая статья по оптимизации для пишущих на VC++ 6,7:
http://www.rsdn.ru/article/cpp/crt.xml
или она же:
http://www.rsdn.ru/article/?51
статья на английском - автор Matt Pietrek - опять для MS VC++ :
"Reduce EXE and DLL Size with LIBCTINY.LIB"
http://msdn.microsoft.com/msdnmag/issues/01/01/hood/default.aspx
с исходниками
 
 

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 16:29 01-11-2004 | Исправлено: vito333, 13:52 29-04-2005
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну у меня под рукой тоже ничего пока нету
Вечером попробую...

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 07:45 03-12-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что сказано по поводу Delete Unimortant resources

Цитата:
 
Delete unimportant resources    
delete FILEINFO, XML resources    
every resource will be in the destination file  
 

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

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 08:10 03-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну может автор пофиксит это дело...

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 08:15 03-12-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WELLROCK

Цитата:
Ну может автор пофиксит это дело...

Вряд ли, ему предлагали сделать настройку пакера более гибкой, но судя по дате релиза, если он сделает, то не скоро.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 08:24 03-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну в прошлой версии вообще консоль была без настроек особых.
Видать некогда ему заниматься этим проектом...

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 08:29 03-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не, ну в принципе мой косяк, проглядел опцию - нодо все ресурсы оставить просто, у меня лишних нет и проверить ...

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 11:28 03-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
То есть у тебя манифест был не в ресурсах а отдельно что ли?

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 11:37 03-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в ресурсах. проверил я MEW - наладить сохранение манифеста и одновременно компрессию не удалось. возвращаюсь на FSG.

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 15:38 06-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну это опять же смотря какие файлы жать
Для меня MEW всё же более приемлим.

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 04:22 07-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WELLROCK
нормальные проги а mew заточен под асм, да еще без манифестов, так что пользуйся, а я - увы ...

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 14:08 07-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну что ж. Каждому свой пакер

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 04:15 08-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Optimizing Your Code with Visual C++
Mark Lacey
Microsoft Corporation
April 2003
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vctchOptimizingYourCodeWithVisualC.asp
----------------------
Summary: This document describes the code optimization features available in the Visual C++® .NET 2003 product. Additionally, for those readers not already familiar with the advancements made in Visual C++® .NET 2002, a short section describes the new Whole Program Optimization feature that was introduced there. Finally, some "best practices" for optimizing are discussed, as well as general enhancements to the Visual C++ compiler.
 
Добавлено
Managing Code Size
The GCC compiler supports a variety of options for optimizing your code. Most of these techniques result in the generation of less code or faster code, depending on your needs. As you prepare your software for release, you should experiment with these techniques to see which ones benefit your code the most.  
 
http://developer.apple.com/documentation/Performance/Conceptual/CodeFootprint/Concepts/CompilerOptions.html#//apple_ref/doc/uid/20001861/CJBJFIDD

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 14:04 17-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
How Big Is My Program
http://www.codeproject.com/system/howbig.asp

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 18:08 19-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
How Big Is My Program  
http://www.codeproject.com/system/howbig.asp

Юзать MFC имхо не оптимизация.
Так можно и кодинг на VB назвать самым оптимизированным =)


----------
Надоело всё уже =)
(с) где-то тут увидел

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 04:22 20-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WELLROCK
ну, упираться в WinAPI, как я, тоже не гуд.
 
а в топик я разную инфу кладу, но про оптимизацию
 
Добавлено

Цитата:
Так можно и кодинг на VB назвать самым оптимизированным  

думаю, проги на ВБ тоже можно так или иначе оптимизировать,хотя и не представляю как

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 05:39 20-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ну, упираться в WinAPI, как я, тоже не гуд.  

Это как раз оптимальный вариант.
Потому что  нет никаких длл-ок посредников, никаких "псевдо-функций".
 
Хотя и тут есть место для оптимизации
Например лучше юзать WriteFile чем _lwrite, потому что _lwrite в итоге вызывает WriteFile.
То же самое касается и MessageBox'a, который в итоге вызывает MessageBoxEx.
 
Кстати размер при этом увеличится, т.к. эти функции используют больше параметров. Но скорость будет выше.


----------
Надоело всё уже =)
(с) где-то тут увидел

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 05:51 20-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это как раз оптимальный вариант

для небольших и несложных проектов - может быть, в других случаях - использовать надо, но упираться - не стоит. Это из собственного опыта тоже. Свой редактор я сначала писал на чистом С, затем сложность меня завалила, сейчас я полностью его переписываю и переделываю на С++, но и тогда и сейчас - чистый WinAPI, так вот сейчас я с завистью иногда поглядываю на WTL - на мой взгляд для создания хребта программы(интерфейса прежде всего) аналогичного класса это самый предпочтительный инструмент, а дополнять и развивать можно как угодно, хоть винапи, хоть мфс.
Хотя конечно, все зависит от цели. Я мог и на VB пописать редактор, но что-то не хотелось, цель другая - минимальный размер, понятность и красота кода, удобный интерфейс, заодно изучаю С/C++ - в общем это ДЗЭН .
У тебя, как у крякера и асмера наверняка другое несколько отношение.
Мне вот уже мой редактор кажется великоватым по размеру кода (53.5 кб неупакованный) - но объективно понимаю, что меньше при его возможностях сделать почти невозможно, только на асме, но думаю, не намного меньше выйдет, а объем работы будет на порядок больше, и ошибок - соответственно. Но тут уже начинается тема соотношения затрат и качества/размера программы, а этого мы не касаемся.
Да и асм я не знаю ((.
 
Что касается ReadFile и _lread - я в своем Марке попытался максимально ускорить загрузку больших файлов в ричедит. Сделал что мог - максимально простой код на ReadFile, минимум проверок в StreamIn функции. Но! Берем бред2 - смотрим - начинает отображать большие файлы (ну скажем 26 мб txt) - через 1-2 сек одновременно догружая остаток - смотрим исходник - все вроде обычно - даже не ReadFile, а _lread используется, смотрим аналоги на этой же версии ричедита - нифига быстрого, все как обычно - тормоза. Смотрим мой Mark - тот же файл - 5-6 сек. Извращался как мог. Но все равно бред2 отображает файл со скоростью функции ReadFile, а у меня на загрузку в ричедит уходит 75% времени и отображает только через 5-6 сек.
Понятно, что ричедит - не самая лучшая вещь и т.д., что он при загрузке грузит кускамм по 4096 байт и возможно из-за этого тормоза, но как это делает бред2? я соптимизировал, а он все равно намного быстрее
 

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 06:51 20-12-2004
WELLROCK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Даже не знаю что сказать %)
 
Добавлено
Хм. Так у тебя долго грузится при чтении из файла или при записи в ричэдит?

----------
Надоело всё уже =)
(с) где-то тут увидел

Всего записей: 728 | Зарегистр. 08-11-2004 | Отправлено: 07:20 20-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
из файла в ричедит
 
стандартный EM_StreamIn.
 
просто я экспериментировал по всякому и и когда читал сначала в буфер в памяти а потом из него в ричедит, то картина была следующая: общее время было такое же, как при прямом чтении в рич 5-6 сек, но! чтение ReadFile-ом 26 мег занимает как раз 1-2 сек, а все остальное время - загрузка в рич, то есть именно мелкокусочнобуферная загрузка в рич занимает основное время. А бред2, собака ), работает со скоростью ReadFile.
 
В принципе, все это умозрительно и почти не имеет практической ценности, так как Марк все-таки грузит большие файлы, а подавляющее большинство аналогов просто дохнет, во вторых, файлы больше 1-2 мег на компе редкость,  а их редактирование - редкость еще бОльшая. Просто было интересно и как раз работал над загрузкой, а это вопрос так и не смог выяснить.
А вообще вопрос по быстрому открытию файлов и загрузке в РТФ-контрол у меня остается открытым.

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 06:16 22-12-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос по скорости бреда2 закрыт - получил письмо от kluga - автора бреда2 - ничего особенного он не делал, использовал STRAMIN, просто ричедит  1.0 быстрее - так что свою прогу буду ускорять своими методами.

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 03:32 30-12-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Оптимизация размера программ (EXE)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru