Главная страница
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.017 c
1-6553
Mic_2000
2003-03-21 15:18
2003.04.03
Подскажите как в текст вставить програмно переход на новую строку


8-6612
demonastarot
2002-12-27 10:11
2003.04.03
MediaPlayer


3-6393
Наташа
2003-03-15 18:14
2003.04.03
Мастера Delphi!


14-6738
Мазут Береговой
2003-03-10 21:16
2003.04.03
Все обрыдло. Тупик. Лампочка погасла...


1-6495
Akella
2003-03-20 14:52
2003.04.03
WORD+DELPHI