Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Вниз

Размер exe-шника С/С++ - и Pascal - компиляторов   Найти похожие ветки 

 
ZiTRaX ©   (2007-02-07 23:41) [0]

Вопрос, может, совсем не в тот форум и не имеет никакой практической ценности, но любопытство требует удовлетворения.  
Почему размер exe-шника, сгенерированного С/С++ - компиляторами по размеру больше паскалевских (тут имеются ввиду VC2005/BCB6-2006/MinGW_3.4.2 с одной стороны и Delphi7-2005-2006/FreePascal_2.0.4 с другой (с остальными компиляторами такой ерундой не занимался) с настройками для работы на любой системе без установки дополнительных *.dll)?
Например, пустое WinAPI-окно на Delphi7 - ~16кб, на BCB6 - ~54кб, BCB2006 - ~123кб. Цифры немного смущают... В сишных компиляторах в опциях линкера есть пункт Use dynamic RTL, при выборе которого размер уменьшается значительно (до 8-11кб), но будет ли это приложение работать на компе без установленного BCB, я не знаю (в локальной сети никто не хочет запускать мои exe-шники, а сносить BCB для проверки мне не очень охота). В MinGW размер получается 7кб, но там для меня тот же вопрос, что и с ВСВ. С VC2005 получается 6.5кб, но опять тот же вопрос о работе (тут вообще в настройках проекта фиг разберёшься (в ВСВ2006 сделали то же самое - огромную кучу опций) - выбираю разные опции методом научного тыка).
Вообще вся эта ерунда(?) написана из-за того, что есть задание написать минимально возможное по размеру приложение именно на ЯВУ (MASM в этом "соревновании" победит 100% -)). СИшные компиляторы вроде как побеждают паскалевские по скорости сгенерированных программ, а вот с размером, исходя из моих наблюдений, у них не сложилось. Конечно, может я совсем не прав и наблюдал совсем не за тем. Тогда, если кто знает, подскажите, какие нужно использовать опции компилятора, чтобы получилось приложение, работающее на любой Windows-системе без дополнительных файлов.
P.S. Не пинайте меня сильно за то, что спрашиваю на дельфийском форуме про С/С++. Ведь если мои наблюдения верны, то Delphi хоть в чём-то уделывает тот же ВСВ (тогда я вообще не вижу смысла в ВСВ как RAD-системе).
P.P.S. Сорри, если всё написанное мною выше является полным бредом. Просто тяжко правильно формировать вопрос по теме, в которой разбираешься с трудом, но разобраться желательно -))
//................................................................................ ................//
Фууух, вроде отписался...
Заранее спасибо тем, кто просветит меня в этом вопросе. А тем, кто покритикует... - ну, без критики нельзя :-)


 
ANTPro ©   (2007-02-08 00:29) [1]

> [0] ZiTRaX ©   (07.02.07 23:41)
> WinAPI-окно на Delphi7

2кб


> [0] ZiTRaX ©   (07.02.07 23:41)
> VC2005 получается 6.5кб

1-3кб


 
Zeqfreed ©   (2007-02-08 00:56) [2]

Пожалуйста, форматируйте текст, когда пишете. Как минимум, нужно расставлять красные строки, но ещё лучше, если вставлять пустые строки для разделения абзацев.

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


 
ZiTRaX ©   (2007-02-08 01:27) [3]

2ANTPro: А можно поинтересоваться: каким образом у Вас получился такой размер ехе-шника в D7? Просто минимальным размером, который я видел, был 3.5кб (была как-то статья в Хакере про замену системных модулей). У меня даже в MASM столько (2кб) не получалось (хотя в MASM я точно не шарю). Я даже представить не могу, что нужно начудить в Делфи, чтобы получить такой размер. Блин, теперь не усну и буду думать, что я делал неправильно...:-( Да и в VC2005 столько же, как и у Вас, у меня не получается. Мда, опции компиляторов для меня большая тайна...
 И ещё вопросик. А ваши ехе-шники работают на компах, на которых не установлены ни Delphi, ни VC2005 без дополнительных файлов???

 2Zeqfreed: Вообще-то я расставлял красные строки, но они почему-то были проигнорированы. Но на будущее учту.
 По поводу неправильных опций компилятора - очень может быть. Но я точно собираю без отладочной информации. Очень бы хотелось узнать правильные опции.


 
Германн ©   (2007-02-08 01:44) [4]


> Размер exe-шника С/С++ - и Pascal - компиляторов
>
> ZiTRaX ©   (07.02.07 23:41)

Не страдайте "ерундой"! Если очень заботит, обратитесь в "уро-гинекологический центр" на Цветном бульваре. Там всё вылечат :)


 
ANTPro ©   (2007-02-08 02:01) [5]

> [3] ZiTRaX ©   (08.02.07 01:27)
> А ваши ехе-шники работают на компах, на которых не установлены
> ни Delphi, ни VC2005 без дополнительных файлов???

Да


> [3] ZiTRaX ©   (08.02.07 01:27)
> А можно поинтересоваться: каким образом у Вас получился
> такой размер ехе-шника в D7

http://xproger.mirgames.ru/


> [4] Германн ©   (08.02.07 01:44)
> Не страдайте "ерундой"!

+1


 
ZiTRaX ©   (2007-02-08 08:34) [6]

2Германн: Я бы и не очень страдал такой ерундой, если б мне не задали задание пострадать такой ерундой -)

2ANTPro: Ну нашёл я на указанном вами сайте о ехе-шнике в 2кб, только самого ехе-шника я там не увидел (он там почему-то размером в 38.5кб, но ни как не 2кб) Мож не то глядел?


 
tesseract ©   (2007-02-08 10:07) [7]


>  Просто минимальным размером, который я видел, был 3.5кб
> (была как-то статья в Хакере про замену системных модулей).
>


Не читай путевые заметки школьников. Можно и меньше сделать.


 
TUser ©   (2007-02-08 10:12) [8]

Про ФриПаскаль и Delphi7 не надо. Консольных Hello world там занимает в пределах 20 Кб, а на BCC5.5 - около 50-ти.


 
Думкин ©   (2007-02-08 11:19) [9]


> TUser ©   (08.02.07 10:12) [8]

D7 - Hello, World! 15360byte


 
TUser ©   (2007-02-08 11:29) [10]

bcc32 - 55 296 :)


 
sniknik ©   (2007-02-08 11:51) [11]

ZiTRaX ©   (08.02.07 01:27) [3]
> Просто минимальным размером, который я видел, был 3.5кб (была как-то статья в Хакере про замену системных модулей).

http://read.excode.ru/art2775p7.html
В результате мы получаем работающий HelloWorld размером в 832 байта!

вообще гдето в другой подобной статье читал об обработке такого файла (не упаковке!), вырезке "ненужных" разделов/частей. в итеге говорилось не о 800, а о 400-500кб файле
(типа из одного раздела? 512кб?)... не помню... до такого маразма не доходил, а вот вполне рабочую программку пример (сервис) в 11кб делал. использовались замены их KOL. хотя... как сказать рабочая... ничего полезного она не делала.

ZiTRaX ©   (08.02.07 08:34) [6]
> 2ANTPro: Ну нашёл я на указанном вами сайте о ехе-шнике в 2кб, ...
там его предлагается самому сделать... и довольно последовательно все разъяснено. если задали фигней страдать... так страдай! не перекладывай на других.


 
Psychedelic ©   (2007-02-08 12:05) [12]


> если задали фигней страдать... так страдай!

Что значит фигней,? Для того чтобы понимать как это работает, нужны определенный набор знаний- по этому и задали. По вашему разработчики KOL страдают фигней ???


 
sniknik ©   (2007-02-08 12:19) [13]

> Что значит фигней,?
а то и значит, раз ему задали то пусть и компилит по описаниям, разбирается, а не ищет готовый exe, это и для понимания полезней и тех кому эта фигня "по барабану" грузить не будет.


 
Игорь Шевченко ©   (2007-02-08 12:25) [14]


> По вашему разработчики KOL страдают фигней ???


Безусловно


 
Rouse_ ©   (2007-02-08 12:37) [15]

По моемому просто стоит купить жесткий диск нормальных размеров и перестать беспокоиться о размере программ.


 
REA   (2007-02-08 13:16) [16]

А никого не смущает, что Corel Draw больше Autocad например? И на дискету "не влазит".
Хотя со ссылками на run-time функции классов и хранением строк в Unicod без необходимости они и правда погорячились...
одно успокаивает, что экзешник 1.2 мегабайта упаковывается до 370к в rar


 
TUser ©   (2007-02-08 13:26) [17]

> упаковывается до 370к в rar

все равно

> на дискету "не влазит".

На пятидюймовую, law density.


 
ANTPro ©   (2007-02-08 16:29) [18]

> [12] Psychedelic ©   (08.02.07 12:05)
> По вашему разработчики KOL страдают фигней ???

ДА. Потому что делфи умирает...


 
Psychedelic ©   (2007-02-08 17:14) [19]

ДА. Потому что делфи умирает...

Откуда такая информация? В своих словах вы уверены на 100 %?
Объясните. Или укажите источник. Или может вы в Borland"e работатете?  


> Игорь Шевченко ©   (08.02.07 12:25) [14]
> > По вашему разработчики KOL страдают фигней ???
> Безусловно

Ну , вас что за язык тянуть надо? Продолжайте. Почему вы та думаете? Объясните же, чем же Вас не устраивает KOL? Четко сформулируйте свою мысль.
Да, и нет любой дурак сказать может. Даже попугай, который повторяет за тем же дураком.


 
Trible   (2007-02-08 17:29) [20]


> Игорь Шевченко ©


Puisque tu as commencé à parler, va jusqu"au bout.

Интересная беседа начинается. Ждемс.


 
Игорь Шевченко ©   (2007-02-08 17:35) [21]

Psychedelic ©   (08.02.07 17:14) [19]


> чем же Вас не устраивает KOL?


А зачем ?


 
Val ©   (2007-02-08 17:40) [22]

>Puisque tu as commencé à parler, va jusqu"au bout.
Это заклятие начала интересной беседы?


 
Psychedelic ©   (2007-02-08 17:42) [23]

ЧТО а зачем?

Сказал А, говори Б. Или аргументов нет? Мы просто разминали пальцы?


 
Игорь Шевченко ©   (2007-02-08 17:46) [24]

Psychedelic ©   (08.02.07 17:42) [23]

Меня смущает, как бы это сказать, практическая целесообразность проекта Владимира Кладова. То есть, не вижу я ее, этой целесообразности. Борьба за размер, это, извини, несерьезно, цена за гигабайт винчестера и за интернет-трафик уже не актуальна, чтобы тратить время разработчика на освоение технологий, которые Borland давно обещает убрать из Delphi, я имею в виду object, на котором весь KOL и держится.

Время - деньги, две недели, уже аванс (с)


 
Rouse_ ©   (2007-02-08 18:13) [25]


> Psychedelic ©   (08.02.07 12:05) [12]
> Что значит фигней,? Для того чтобы понимать как это работает,
>  нужны определенный набор знаний- по этому и задали. По
> вашему разработчики KOL страдают фигней ???

Владимир Кладов, конечно, молодец, но я так понимаю, что для него это в рамках развлечения - он же не зарабатыает на этом деньги.

А какие будут доводы в пользу KOL именно у тебя? Чтобы, как ты говоришь, не гнуть пальцы - сделай первый шаг :)


 
Psychedelic ©   (2007-02-08 18:29) [26]


> чтобы тратить время разработчика на освоение технологий,
>  которые Borland давно обещает убрать из Delphi
>

Ого, ну и программисты у нас. Оказыватеся те кто программирует на Delphi должен осваивать новые технологии.   Новые! Да вообще то это часть языка, и если вы прекрасно знаете его (язык), то абсолютно нет никаких преград. Все то же Delphi. Нет там никаких новых технологий. Ну а если чел умеет бросать только компоненты на форму (это к вам не относиться - это вобщем) , а у нас в основном таких "программистов" завались (об этом уже говорили - обговаривали, - ведро на рубль ), то конечно для него это будет довольно трудновато.

А что плохого когда имеем RAD средство, которое создает результат без мертвого кода, и быстро работающее? Разве вы когда создаете продукт (не важно что будь то прога, или что либо еще) не стремитесь к качеству? Разве вы не стремитесь к совершенству?Тут даже вопрос не в размере.
А в самой идеологии, для чего нужно то, что просто занимате место, что абсолютно не используется?? Почему бы не сделать "умную" систему сборки? Ведь скорость и качество - это основные пункты в программировании.
Согласитесь, не каждый  RAD может похвастаться такими результатами, как симбиоз KOL и делфи.

Ps. Убрать Object? Вы представляете что тогда будет с Delphi и с совместимостью с проектами? Врядли компания пойдет на создание убытка для своих клиентов.


 
Stexen ©   (2007-02-08 18:31) [27]


> ZiTRaX ©   (07.02.07 23:41)  

Жесть! Опять! Жесть!
Читаем курс по работе компиляторов. Разбираемся в архитектуре и не задаем больше этот вопрос


 
Psychedelic ©   (2007-02-08 18:43) [28]

Вы поймите врядли это было бы развлечением. Посмотрите на маштабы.
Написано большое поднможесто компонент, Книга, участвуют люди не только из России . Вложено много труда  и времени.
Это как спор между Сишниками и Делфистами. Между тем кто использует API и компоненты. Пока сам не попробуешь, не поймешь. Сам раньше гнал на делфи, когда работал только  с С. Пока не перешел окончательно, поняв все плюсы этого языка.
KOL это тоже делфи, это не другой язык.
Каждое средство для чего то нужно, для разных задач.


 
Джо ©   (2007-02-08 19:01) [29]

> [26] Psychedelic ©   (08.02.07 18:29)
>
> > чтобы тратить время разработчика на освоение технологий,
>
> >  которые Borland давно обещает убрать из Delphi
> >
>
> Ого, ну и программисты у нас. Оказыватеся те кто программирует
> на Delphi должен осваивать новые технологии.   Новые! Да
> вообще то это часть языка, и если вы прекрасно знаете его
> (язык), то абсолютно нет никаких преград. Все то же Delphi.
> Нет там никаких новых технологий. Ну а если чел умеет бросать
> только компоненты на форму (это к вам не относиться - это
> вобщем) , а у нас в основном таких "программистов" завались
> (об этом уже говорили - обговаривали, - ведро на рубль )
> , то конечно для него это будет довольно трудновато.
>
> А что плохого когда имеем RAD средство, которое создает
> результат без мертвого кода, и быстро работающее? Разве
> вы когда создаете продукт (не важно что будь то прога, или
> что либо еще) не стремитесь к качеству? Разве вы не стремитесь
> к совершенству?Тут даже вопрос не в размере.
> А в самой идеологии, для чего нужно то, что просто занимате
> место, что абсолютно не используется?? Почему бы не сделать
> "умную" систему сборки? Ведь скорость и качество - это основные
> пункты в программировании.
> Согласитесь, не каждый  RAD может похвастаться такими результатами,
> как симбиоз KOL и делфи.
>
> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих клиентов.

Господи, сколько пафосу, а по-сути — 0. Ну, кто тут говорил о гнутии пальцев? ;->


 
Psychedelic ©   (2007-02-08 19:12) [30]

Очень сильно напоминает спор об оптимизации. Оптимизировать или нет. Машина мощная все проглотит.


> сколько пафосу, а по-сути — 0.

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


 
Джо ©   (2007-02-08 19:17) [31]

> [30] Psychedelic ©   (08.02.07 19:12)
> Просто большую
> работу назвали фигней, люди которые даже тольком не видели
> ее. Вот что меня задело.

Да тут, в общем, предлагали обратить внимание на ПРАКТИЧЕСКУЮ пользу этой большой работы. Я, например, не вижу этой практической пользы. Вполне может быть (и даже часто бывает), когда человек проделевает БОЛЬШУЮ, но ПРАКТИЧЕСКИ бесполезную работу. Оно, конечно, альтруизм не самая плохая мотивация, а мастерство — не самое плохое свойство, однако никакой прямой корреляции с полезностью они не имеют.


 
DevilDevil ©   (2007-02-08 19:20) [32]


> TUser ©   (08.02.07 10:12) [8]
>
> Про ФриПаскаль и Delphi7 не надо. Консольных Hello world
> там занимает в пределах 20 Кб, а на BCC5.5 - около 50-ти.
>


8кило без выставления опций компилятора, замены System-модулей и других извратов. D7.

> ZiTRaX ©   (07.02.07 23:41)

Программируй на Delphi и не парься!!!


 
DevilDevil ©   (2007-02-08 19:23) [33]


> ZiTRaX ©   (07.02.07 23:41)
> Ведь если мои наблюдения верны, то Delphi хоть в чём-то
> уделывает тот же ВСВ (тогда я вообще не вижу смысла в ВСВ
> как RAD-системе).


Нет, Delphi выигрывает только в размере exe и скорости компиляции; зато в плане возможностей языка, С++ безусловно будет выше Delphi. Прибавь к C++ Дельфийское удобство (среда + VCL), получится Билдер ;)


 
Psychedelic ©   (2007-02-08 19:41) [34]

Если можно сделать лучше, в даннном случае - быстрее и меньше, почему бы это не сделать?
Ведь получился инструмент, который добавляет по мере необходимости нужные вещи, а не "все в одном".

Практическая польза, попробую объяснить популярно:
Отойдем от KOL.
Возьмем Windows, которая устанавливается готовым блоком на систему пользователя. т.е. все нужное и ненужное ставиться на компьютер и лежит мертвым грузом.
Если бы она устанавливала только необходимое, то максимум мегабайт 300 занимала бы Win XP, нужное же устанавливалось бы по мере необходимости.

Если бы многие (даже не все!) соблюдали эту концепцию, согласитесь всем бы жилось намного легче.  Втч это касается и оптимизации.
Сейчас при разработке ПО на качество не смотрят, смотрят на сроки, и в результате на выгоду. Надеюсь это никому не надо вдалбливать?

Ведь много по малу - много.

Или я не прав?


 
DevilDevil ©   (2007-02-08 19:47) [35]

Противопоставлять причинам создания KOL  возможность прикупить винчестер побольше имхо является оскорблением. Мотивация была другая - "снижение времени закачки из Сети", так скажем.

1) Стандартные Sysutil-ные функции остались почти без изменений
2) В KOL содержатся некоторые полезные вещи, которых просто нет в VCL
3) Есть узкий круг задач, для которых KOL является неким спасением; он узок, но всё же есть. Кладова стоит как минимум уважать за его детище.

Мне почему то сразу вспомнился следующий случай. Решил я в своё время скачать графический движок размером порядка 3.5мб. Размер был таким отчасти из-за размера exe-примеров. Сами exe занимали порядка 120 кило. Представьте, что семплов было бы больше в 3 раза (я бы сделал в 5-6 раз больше), какой был бы размер архива? -- неприятный!

P.S. А занимали бы exe кило 20..... Имхо было бы лучше ;)
P.P.S. exe такие маленькие потому что движок на dll.


 
Джо ©   (2007-02-08 19:49) [36]

> [34] Psychedelic ©   (08.02.07 19:41)
> Или я не прав?

Я не увидел ни одного примера ПРАКТИЧЕСКОЙ пользы для программиста, создающего конечный продукт. KOL поможет сделать его быстрее? Или хотя бы качественней? Не думаю.


 
DevilDevil ©   (2007-02-08 19:54) [37]

> Psychedelic ©   (08.02.07 19:41) [34]

Delphi не компилирует "всё в одном", компилятор обладет "умным связыванием". Другое дело, если в секциях юнита Initialization или Finalization что то написано, то этот код компилируется. Именно такой "эффект" появляется, когда просто дописываешь в юзес SysUtils и экзешник увеличивается на 25 кило.

> Ps. Убрать Object? Вы представляете что тогда будет с Delphi
> и с совместимостью с проектами? Врядли компания пойдет на
> создание убытка для своих


Если я не ошибаюсь, ни одного object-а в VCL нет.
Недавно кстати попробовал откомпилировать дельфийский модуль в билдере --- ругается, не знает, что такое "object" :(


 
sniknik ©   (2007-02-08 20:03) [38]

Psychedelic ©   (08.02.07 19:12) [30]
> ... Просто большую работу назвали фигней, ...
сам назвал, сам и возмущаешься? малацца.

p.s. до твоей интерпретации у "фигни" был немного другой смысл чем равенство с KOL/большой работой.
если почитать внимательнее то этим были охарактеризованы усилия конкретного человека, по уменьшению размера. притом в продолжение его же собственного "признания"... (ответ был по)
ZiTRaX ©   (08.02.07 08:34) [6]
> 2Германн: Я бы и не очень страдал такой ерундой, если б мне не задали задание пострадать такой ерундой -)

p.p.s. понимай все буквально, без "двойных смыслов", будет легче. ("будь проще, и люди к тебе потянутся...")


 
Psychedelic ©   (2007-02-08 20:06) [39]


> Я не увидел ни одного примера ПРАКТИЧЕСКОЙ пользы для программиста,
>  создающего конечный продукт. KOL поможет сделать его быстрее?
>  Или хотя бы качественней? Не думаю.


Речь шла о практической пользе от KOL в целом. Не будте буквоедом, только для того чтобы оставаться правым.
Еще раз перечитайте предыдущий пост, для лучшего понимания.


> Delphi не компилирует "всё в одном", компилятор обладет
> "умным связыванием". Другое дело, если в секциях юнита Initialization
> или Finalization что то написано, то этот код компилируется.
>


Я в курсе.  Я имел ввиду готовый результат вцелом.


 
Psychedelic ©   (2007-02-08 20:09) [40]


> p.p.s. понимай все буквально, без "двойных смыслов", будет
> легче. ("будь проще, и люди к тебе потянутся...")

Спасибо поучение. Я подумаю.

P.s. столько учителей развелось...



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Прочее";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.057 c
3-1166345336
VadimSpb
2006-12-17 11:48
2007.03.11
DBCC CHECKDB, DBCC DBREINDEX


1-1168973594
anton773@yandex.ru
2007-01-16 21:53
2007.03.11
richtextbox и url


15-1171414974
sqler
2007-02-14 04:02
2007.03.11
SQL Запрос,


1-1168244756
Tex
2007-01-08 11:25
2007.03.11
OnDblClick на Splitter


3-1166062851
NigthSkif
2006-12-14 05:20
2007.03.11
Исключения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский