Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер имеет значение 
:(
    Опции темы
404
  Дата 13.12.2004, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Сорри что опять поднимаю эту тему, но кроме советов писать на API, использовать упаковщик, и наплевать-и-забыть перерыв кучу ресурсов и Борландовский хелп мало что нашёл.

Работаю с Borland С++ Builder 5. Программа, печатающая в файл "Hello world!" занимает ~54K (только stdlib.h). Имхо, это бред.

Если добавить ещё windows.h (WinMain), stdio.h и string.h (и пару сотен строк кода, но это никак не влияет на размер), уже 60.5K.

Откуда берутся вообще 54K в программе, которая "ничего не делает"?

Как конкретно можно, сохраняя полезные оптимизации, как то выравнивание по размеру страницы памяти, не использование "Dynamic RTL" и пр. уменьшить размер .exe?

Как заставить компилятор не добавлять в код ненужную фигню, в частности неиспользуемые функции?

Поймите правильно, я отнюдь не стремлюсь в 100 байт программу запихнуть, но 54K на 0 действий, это несерьёзно.

Если для этого надо скажем перейти на Visual C++ или воспользоваться другим компилятором, OK.
PM MAIL   Вверх
azesmcar
Дата 13.12.2004, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Зависит от того какое именно приложение ты пишешь на C++ Builder...
Вообще билдер по жизни не предназначен для создания маленьких программ, хочешь получить маленькую пользуйся LCC...ничего лишнего там не будет, еще немного оптимизации и пустая программа будет весить несколько кило...Ну а меньше всего конечно будет mASM...
Я на LCC как то DLL ку написал...признаться чего только она не вытворяла..получилось после оптимизации 30 кило..

Это сообщение отредактировал(а) azesmcar - 13.12.2004, 08:49
PM   Вверх
404
Дата 13.12.2004, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



azesmcar
Сейчас пишу движок запросов к неким данным, а сверху будет рисовалка и математика.

Мне всё ж не верится что компилятор нельзя заставить не включать ненужное в код.
PM MAIL   Вверх
azesmcar
Дата 13.12.2004, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Можно наверное, но как это сделать на билдере сказать не могу, узнаешь и мне сообщи smile

лучше всего на LCC (Light C Compilator)...На то он и light...Помнится я как то в далеком детстве троян на билдере написал...никак его никому не мог отправить...ну нету столько места в mailbox -е smile

PM   Вверх
srd
Дата 13.12.2004, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



Тут следует иметь в виду, что Билдер использует свою версию СRT. Можно линковать программу с ней динимически, но тогда прийдется таскать саму CRT (метра полтора, точно не помню). MSVC++ и MinGW используют микрософтовскую реализацию CRT (msvcrtxx.dll). LCC тоже использует микрософтовскую CRT, только другую - CRTDLL.DLL. Отсюда и кажется, что программы имеют меньший размер, т.к. эти DLL есть в Windows и их можно не таскать с программой. Кроме того, LCC - это Си, не Си++ компилятор, потому размеры меньше.


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
S.A.P.
Дата 13.12.2004, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



404 поищи по форуму. Эта тема задавалась тут пару раз. Размер Hello World на MSVC++ можно уменьшить до одного килобайта smile
PM MAIL   Вверх
alien_by
Дата 13.12.2004, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 29.11.2004
Где: Belarus/Gomel

Репутация: нет
Всего: 8



Возможно у тебя режим сборки стоит Debug (ну или что-то типа, незнаю как BCB), так вот в этом случае в твой екзешник вкомпиливается отладочная информация. Причём не только на твой код, но и на некоторые борландовские куски. Измени режим на Release размер уменьшиться, но не надёйся что сильно smile Билдер, никогда не оличался легковестностью программ.

PM MAIL ICQ   Вверх
chipset
Дата 13.12.2004, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



ИМХО нуна переходить на MSVC++...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
404
Дата 13.12.2004, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Эх... ну, перейти на VC++ не проблема, если польза будет... да, видел в форуме на счёт Debug и Release, также в доке по опциям компилятора VC++ что-то видел полезное... а точней никто не скажет?
PM MAIL   Вверх
S.A.P.
Дата 13.12.2004, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



404, а чё точнее то??? Тебе на вопросы ответили, директивы оптимизации у тебя есть, как компилить в режиме Release ты знаешь... Что еще надо smile
PM MAIL   Вверх
404
Дата 13.12.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Perchilla
OK. Версия MSVC++ имеет значение?
PM MAIL   Вверх
srd
Дата 13.12.2004, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



MSVC++ 6 старенький и плохо держит стандарт. MSVC++ 7.x создает EXE-шники большего размера smile


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
404
Дата 13.12.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Э... так на какой версии VC++ "Hello World" можно запихнуть в килобайт? smile
PM MAIL   Вверх
S.A.P.
Дата 13.12.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Цитата(srd @ 13.12.2004, 16:16)
MSVC++ 7.x создает EXE-шники большего размера smile
я бы не сказал smile

Добавлено @ 16:23
Цитата(404 @ 13.12.2004, 16:22)
Э... так на какой версии VC++ "Hello World" можно запихнуть в килобайт? smile
на обоих можно. На семерке точно.

PM MAIL   Вверх
404
Дата 13.12.2004, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Perchilla
А в плане быстродействия кода VC++ vs Borland как? Большая разница есть? (чтение с диска, математика, работа с битовыми полями).
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.