![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Зависит от того какое именно приложение ты пишешь на C++ Builder...
Вообще билдер по жизни не предназначен для создания маленьких программ, хочешь получить маленькую пользуйся LCC...ничего лишнего там не будет, еще немного оптимизации и пустая программа будет весить несколько кило...Ну а меньше всего конечно будет mASM... Я на LCC как то DLL ку написал...признаться чего только она не вытворяла..получилось после оптимизации 30 кило.. Это сообщение отредактировал(а) azesmcar - 13.12.2004, 08:49 |
|||
|
||||
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.12.2004 Репутация: нет Всего: нет |
azesmcar
Сейчас пишу движок запросов к неким данным, а сверху будет рисовалка и математика. Мне всё ж не верится что компилятор нельзя заставить не включать ненужное в код. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Можно наверное, но как это сделать на билдере сказать не могу, узнаешь и мне сообщи
лучше всего на LCC (Light C Compilator)...На то он и light...Помнится я как то в далеком детстве троян на билдере написал...никак его никому не мог отправить...ну нету столько места в mailbox -е |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Тут следует иметь в виду, что Билдер использует свою версию СRT. Можно линковать программу с ней динимически, но тогда прийдется таскать саму CRT (метра полтора, точно не помню). MSVC++ и MinGW используют микрософтовскую реализацию CRT (msvcrtxx.dll). LCC тоже использует микрософтовскую CRT, только другую - CRTDLL.DLL. Отсюда и кажется, что программы имеют меньший размер, т.к. эти DLL есть в Windows и их можно не таскать с программой. Кроме того, LCC - это Си, не Си++ компилятор, потому размеры меньше.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
404 поищи по форуму. Эта тема задавалась тут пару раз. Размер Hello World на MSVC++ можно уменьшить до одного килобайта
|
|||
|
||||
| alien_by |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 29.11.2004 Где: Belarus/Gomel Репутация: нет Всего: 8 |
Возможно у тебя режим сборки стоит Debug (ну или что-то типа, незнаю как BCB), так вот в этом случае в твой екзешник вкомпиливается отладочная информация. Причём не только на твой код, но и на некоторые борландовские куски. Измени режим на Release размер уменьшиться, но не надёйся что сильно
|
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
ИМХО нуна переходить на MSVC++...
--------------------
|
|||
|
||||
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.12.2004 Репутация: нет Всего: нет |
Эх... ну, перейти на VC++ не проблема, если польза будет... да, видел в форуме на счёт Debug и Release, также в доке по опциям компилятора VC++ что-то видел полезное... а точней никто не скажет?
|
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
404, а чё точнее то??? Тебе на вопросы ответили, директивы оптимизации у тебя есть, как компилить в режиме Release ты знаешь... Что еще надо
|
|||
|
||||
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.12.2004 Репутация: нет Всего: нет |
Perchilla
OK. Версия MSVC++ имеет значение? |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
MSVC++ 6 старенький и плохо держит стандарт. MSVC++ 7.x создает EXE-шники большего размера
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.12.2004 Репутация: нет Всего: нет |
Э... так на какой версии VC++ "Hello World" можно запихнуть в килобайт?
|
|||
|
||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
Добавлено @ 16:23
|
||||
|
|||||
| 404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.12.2004 Репутация: нет Всего: нет |
Perchilla
А в плане быстродействия кода VC++ vs Borland как? Большая разница есть? (чтение с диска, математика, работа с битовыми полями). |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |