Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

Как уменьшить размер ехе-файла   Найти похожие ветки 

 
RelakS   (2003-03-16 19:33) [0]

Написал на VC++ програму она получилась 50кб, написал такую же на Делфи приблизительно 420кб. Так вот,можно ли как-то уменьшить размер программы.


 
big_rom ©   (2003-03-16 19:35) [1]

нет или писать на апи

Удачи


 
nikkie ©   (2003-03-16 20:05) [2]

на VC небось писал на MFC? посмотри настройки проекта - там по дефолту стоит "Use MFC as a shared DLL". это означает, что для функционирования твоей программы будет требоваться mfc42.dll размером 1Mb. так что не обольщайся. линковка с MFC статически сразу увеличит размер твоей программы, но такая программа не будет требовать MFC dll.

хочешь добиться такого же эффекта на Delphi? элементарно. открой Project/Options и поставь галочку "Build with run-time packages". программа будет маленькой, но будет требовать *.bpl файлы.

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


 
NKiril ©   (2003-03-16 20:55) [3]

А вот и можно, есть такая прога. UltimatePacker или шото в этом роде, если заинтересовало. Мыльте... Так вот моя прога из 420кб превратилась в 120 кб.


 
IL-89 ©   (2003-03-16 21:02) [4]

Ещё можно KOL (кодоэкономичная библиотека) использовать. Размер уменьшится в 5-10 раз, но мне лично на KOL программировать неудобно (немного отличается от VCL).
IL-89


 
multik ©   (2003-03-17 00:20) [5]

ASPack - уменьшает размер exe в несколько раз. У меня одну прогу уменьшила в 6 раз. Но бывают случаи, когда прога глючит после сжатия, но редко.


 
Lancelot ©   (2003-03-17 01:33) [6]

Вопросу давно пора в FAQ.


 
NetBreaker666 ©   (2003-03-17 14:23) [7]

Не используй VCL - 40-60kb гарантировано. А из VC++ можна 2кб(и меньше) выжать.


 
Слесарь Матерящийся ©   (2003-03-17 14:39) [8]

А ЗАЧЕМ писать одно и то же 2 раза? В чём смысл?


 
Игорь Шевченко ©   (2003-03-17 14:43) [9]

Слесарь Матерящийся © (17.03.03 14:39)

А померяться как же ? :-))) Чтобы потом сказать - Delphi отстой, так как большие exeшники создает :-))))


 
Слесарь Матерящийся ©   (2003-03-17 14:49) [10]

>Игорь Шевченко © (17.03.03 14:43)

Действительно! :)
Кадру просто нечем заняться...


 
y-soft ©   (2003-03-17 14:56) [11]

Если бы дело только в размере было, то все писалось бы на ASM или вообще в машинных кодах, а потом очччень долго и мучительно оптимизировалось (кто работал с микроконтроллерами, тот знает). Есть ведь и другие способы уменьшения размера бинарников - например грамотное совместное использование Dll


 
blackman ©   (2003-03-17 14:56) [12]

Можно и уменьшить
http://www.aspack.com/


 
Danilka ©   (2003-03-17 15:06) [13]

для любителей упаковщиков желательно почитать вот-это:

http://plugring.farmanager.com/programming/articles/packers.html


 
NetBreaker666 ©   (2003-03-17 15:33) [14]


2y-soft ©
> то все писалось бы на ASM или вообще в машинных кодах

А какя разница ? Меньше занимать будут ?


 
y-soft ©   (2003-03-17 15:50) [15]

>NetBreaker666 © (17.03.03 15:33)
Конечно меньше, т.к. больше возможностей для оптимизации


 
NetBreaker666 ©   (2003-03-17 16:51) [16]


> y-soft © (17.03.03 15:50)
> >NetBreaker666 © (17.03.03 15:33)
> Конечно меньше, т.к. больше возможностей для оптимизации

Каких возможностей для оптмимзации? Ты вообще какой ассемблер подразумеваешь? Давай не будем рассматривать архитектуру X-Scale (я сам еще не разобрался). А если ты имеешь ввиду x86, Motorolla (Palm1-2), Texas I., альфа, спарк или что-нибудь в этом роде, то запомни, что между асмом и машинным кодом (с точки зрения машины) разницы нет (я не имею ввиду возможность execut"a). Асм просто более удобен для чтения, там есть такое понятие как метки (да, давай не будем рассматривать макросы - плохой стиль). Например
or ax,ax
jz @Somewhere
jmp @SomewhereElse
Будет выглядеть как 0x09,0xC0,0x74,0xADR1,0xe9,WORD:0xADR2 (16бит) где 0xADR1 и 0xADR2 - относительный и адсолютные адреса. Правда не удобно считать сколько занимает в байтах тот или иной кусок кода ? А компилятор это просто за тебя делает. А так разницы никакой, что ты пишешь mov ax,04c00h; int 21h; или db 0b8h,04ch,000h,0cdh,021h - разницы никакой.
Если не веришь, попробуй привести кусок кода, который нельзя реализовать на Ассемблере.



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
14-6768
manumba
2003-03-14 16:41
2003.04.03
Автоматическое тестирование


4-6851
Chlavik
2003-01-31 22:55
2003.04.03
Dial Up Dialog


1-6441
lexa
2003-03-23 22:01
2003.04.03
Как создать ссылку в тексте


14-6707
michael_b
2003-03-15 17:56
2003.04.03
Кто решит СУПЕР задачу по алгебре?


14-6725
cok
2003-03-15 16:50
2003.04.03
Пароли