EXE оптимизация
10 отговора
357 прегледа
EXE оптимизация
Има ли начин да се оптимизират получените от Delphi изпълними файлове? Много големи се получават. Дори след като ги компресирам с UPX, резултата пак не е задоволителен. Няма ли някакви опции в самото Delphi?
Мълчанието е злато, но ние не сме алчни, особено аз!
Мълчанието е злато, но ние не сме алчни, особено аз!
Re: EXE оптимизация
Големи спрямо какво ??? - Спрямо програма правена на VS на C++ - ами пробвай да линкнеш статично MFC библиотеката и тогава ще ти гледам учудената физиономия от размера на exe файла ;-))))))) Освен това какво разбираш под голям exe файл - тези които съм докарвал - до 7-8 МБ- не са големи
Препоръките за малки файлове са
1. Смислено използване на ресурсите (да няма повтаряне на битмапи и прочие) - и те да са с оптимални размери и брой цветове.
2. Смислено използване на thirtd party компоненти - понякога хората наслагват - само заради единия по добър изглед на някой компонент.
3. Изчистване на използваните модули - каквото не се ползва - се разкарва - това спестява малко KB.
4. Build with Runtime Packages - това е стара тема- погледни назад - така веднъж инсталираш пакетите - след това при промяна мяташ exe-то на една дискета и си готов.
5. Като алтернатива на 4 - можеш да ползваш библиотеки - но не ти го препорчъвам.
Сигурно има и още - но не виждам смисъл да дискутирам темата при положение, че един 1G струва почти 1$ = 1.5х лева - т.е. без пари.



---
Колкото повече, толкова повече.
Препоръките за малки файлове са
1. Смислено използване на ресурсите (да няма повтаряне на битмапи и прочие) - и те да са с оптимални размери и брой цветове.
2. Смислено използване на thirtd party компоненти - понякога хората наслагват - само заради единия по добър изглед на някой компонент.
3. Изчистване на използваните модули - каквото не се ползва - се разкарва - това спестява малко KB.
4. Build with Runtime Packages - това е стара тема- погледни назад - така веднъж инсталираш пакетите - след това при промяна мяташ exe-то на една дискета и си готов.
5. Като алтернатива на 4 - можеш да ползваш библиотеки - но не ти го препорчъвам.
Сигурно има и още - но не виждам смисъл да дискутирам темата при положение, че един 1G струва почти 1$ = 1.5х лева - т.е. без пари.
---
Колкото повече, толкова повече.
Re: EXE оптимизация
Ами според теб нормално ли е прост текстов редктор на обиновен текст да става 1 мегабайт ( след компресиране с UPX става 435 К )? Гледам други редактори по 50-60 К ( е, вярно, все пак писани са на асемблер ). Но както и да е. Ще го приема. Та затова питах нормално ли е това.
Мълчанието е злато, но ние не сме алчни, особено аз!
Мълчанието е злато, но ние не сме алчни, особено аз!
Re: EXE оптимизация
Не е лошо да погледнеш и така нареченото NonVCL програмиране(с използването директно на WinAPI). Получават се доста малки exe-та( при мен едно сравнително сложно приложение е с големина 40kb)
Май ще трябва да се задълбоча...
и да ти разясня нещо което писах преди повече от 2 години във форума за програмисти
1. Защо Делфи програмите стават големи - ами защото VCL се линква статично в самата програма - ако искаш малка програма - просто я компилирай с RunTime packages!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Обаче тогава ще трябва да инсталираш веднъж тези пакети на машината на която deploy-ваш програмата. След това само обновяваш exe-то. Чисто и просто като къпан ....
2. Защо програмите писани на MS VS - без значение VC или VB- стават малки - ами защото MFC библиотеката е свързана динамично - или реално почти 8 МБ стоят извън файла !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MFC библиотеката(4.2 ако не бъркам) върви с самия Win - t.e няма нужда от инсталация .
Сравнено като размер на exe -то - което няма нищо освен форма и бутон на него - с Делфи се компилира до 16-17k (и помалко може да стане като махнеш дебъг инфото и като ползваш по стара версия на - Д4.0 приемерно) а с VC (6.0) до 20+ КБ в зависимост от опциите на компилатора.
Би ли ми обеснил тогава, че exe файловете ставали ГОЛЕМИ!!!!!!!!!!!!
Има ли нужда от повече обеснения - ако искаш малко exe - не ползвай нито една от тези две библиотеки - ами директно API функциите на win - за да не си зависим от библиотеките - обаче тогава програмата ти ще заприлича малко на ASM от 88 година ;-))))) - поне на мен на това ми прилича.
1. Защо Делфи програмите стават големи - ами защото VCL се линква статично в самата програма - ако искаш малка програма - просто я компилирай с RunTime packages!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Обаче тогава ще трябва да инсталираш веднъж тези пакети на машината на която deploy-ваш програмата. След това само обновяваш exe-то. Чисто и просто като къпан ....
2. Защо програмите писани на MS VS - без значение VC или VB- стават малки - ами защото MFC библиотеката е свързана динамично - или реално почти 8 МБ стоят извън файла !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MFC библиотеката(4.2 ако не бъркам) върви с самия Win - t.e няма нужда от инсталация .
Сравнено като размер на exe -то - което няма нищо освен форма и бутон на него - с Делфи се компилира до 16-17k (и помалко може да стане като махнеш дебъг инфото и като ползваш по стара версия на - Д4.0 приемерно) а с VC (6.0) до 20+ КБ в зависимост от опциите на компилатора.
Би ли ми обеснил тогава, че exe файловете ставали ГОЛЕМИ!!!!!!!!!!!!
Има ли нужда от повече обеснения - ако искаш малко exe - не ползвай нито една от тези две библиотеки - ами директно API функциите на win - за да не си зависим от библиотеките - обаче тогава програмата ти ще заприлича малко на ASM от 88 година ;-))))) - поне на мен на това ми прилича.
Редактирано от PhantomAS на
Finalen komentar:
Истинските мъже не ползват GUI, GUI е за жени и юзъри! 
------------------------------
I got a COMPILER, and I'm not afraid to use it!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
;-)))
х'Абсолютно съгласен - ама какво да се прави - всичките клиенти са жени или user-и ;-)))
Да живее конзолата - мисля малко по малко да я върна в програмите ми ;-)))- както едно време AutoCad - а - можеше да му пишеш командите ;-))))))
P.S. Да не си помислите, че съм имал нещо лошо в предвид за жените - само хубави неща им мисля - ама да не се отплесваме.
---
Колкото повече, толкова повече.
Да живее конзолата - мисля малко по малко да я върна в програмите ми ;-)))- както едно време AutoCad - а - можеше да му пишеш командите ;-))))))
P.S. Да не си помислите, че съм имал нещо лошо в предвид за жените - само хубави неща им мисля - ама да не се отплесваме.
---
Колкото повече, толкова повече.
Re: ;-)))
То и сега може, а във версиите след 13 има и history. Вярно доста голямо дърво е в сравнение с някои други...
Re: Май ще трябва да се задълбоча...
Ясно, ясно, разбрах те. Предпочитам да си я оставя програмата така, за да не е библиотеко-зависима. Благодаря за разяснението.
Мълчанието е злато, но ние не сме алчни, особено аз!
Мълчанието е злато, но ние не сме алчни, особено аз!
Да, ще трябва да се задълбочиш, ама в друга област
Пише се "обЯснения", пич...
"О Б Я С Н Е Н И Я" - с 'Я', а не с 'Е'
---------------------------------
Айде, и със здраве
"О Б Я С Н Е Н И Я" - с 'Я', а не с 'Е'
---------------------------------
Айде, и със здраве
Re: Да, ще трябва да се задълбочиш, ама в друга об
Някой май е станал с дупето нагоре тази сутрин...