Опять про размер проги

Тема в разделе "Delphi - FAQ", создана пользователем Баламут, 27 июл 2005.

  1. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Привет всем!

    Впервые на вашем форуме. Неплохо. Такой вопрос.

    При обычном создании приложения с двумя формами размер exe-шника получился около 400М. Я написал MDI-приложение, где дочерние формы хранятся в DLL. При этом размер проги стал меньше 30К! А почему? Создается такое впечатление, что много остается за бортом. А как тогда сказать компилятору, чтобы все ложил в кучу? Вроде давно пишу на Делфи, но вот с настройками компилятора как-то не заморачивался. Видимо зря. Пишу на Delphi 6.
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Рзамер очень сильно зависит от объёма подключённых модулей и опций компилятора.

    Также попробуйте упаковывать полученный исполняемый файл или ДЛЛ с помощью паковщиков, что значительно снизит их размер.
     
  3. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Э, нет! Меня как раз интересует, почему так резко снизился размер проги. А использовать упаковщики вообще сомнительное счастье. В ОЗУ -то программа все-равно примет свой начальный размер. А на диске сейчас жалеть место даже неудобно как-то :lol: . А вот про настройки компилятора хотелось бы по-подробнее, если можно. Уж больно не хочется, что бы на чужой машине прога стала ругаться, что ей чего-то не хватает.
     
  4. zubr

    zubr Гость

    Репутация:
    0
    Баламут
    Как только в проект добавляете модуль Forms, так сразу размер программы увеличивается на 300 kB, причем не имеет значение dll-ка это, или консоль (хотя зачем в консоли Forms?). Выход: окна создавать на API, но очень гиморно. Еще с помощью директив компилятора можно в том же Forms сделать, чтобы компилировалось только то что вам нужно, но опять таки это очень гиморно, да и не гарантия, что это корректно получится (кстати такой способ реализован в кмопонентах KOL).
     
  5. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Похоже я не совсем ясно сформулировал вопрос. Меня не удивляет размер проги в 300K. Я прекрасно знаю, что это нормально. Вопрос как раз об обратном эффекте. Почему размер уменьшился до 30 килобайт? Форма есть как в экзешнике, так и в DLL. Я точно знаю, что где-то в настройках компилятору можно указать статическое или динамическое использование библиотек, т.е. линковать их в исполняемый файл или нет. Настроек я вроде не менял, но все-таки хочется знать, где это можно сделать.
     
  6. Barmutik

    Barmutik Гость

    Репутация:
    0
    Статическое или динамическое линкование никак не скажется на размере...

    Вам уже совсершено верно указал zubr, чтразмер очень сильно зависит от количества включённых модулей... ищите что Вы включали и отключили ...
     
  7. ????

    ???? Гость

    Репутация:
    0
    Для: Баламут
    Создаём новый проект. Компилируем - 370 176 байт. Projects -> Options -> Packages и пстрынькаем на Build with runtime packages - размер 16 896 байт. Зависит от того, что вставленно в поле, но надо это всё таскать с прогой.
     
  8. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Вот теперь все нормально. Спаибо. Правда возникли другие проблемы, но разберемся! ;)
     
  9. Poseidon

    Poseidon Гость

    Репутация:
    0
    <!--QuoteBegin-????+28:07:2005, 16:34 -->
    <span class="vbquote">(???? @ 28:07:2005, 16:34 )</span><!--QuoteEBegin-->Projects -> Options -> Packages и пстрынькаем на Build with runtime packages
    [snapback]22691" rel="nofollow" target="_blank[/snapback]​
    [/quote] Ну и что? Теперь прога не запустится на компе, на катором не установлена Дельфя. Советчики... :P
     
  10. Barmutik

    Barmutik Гость

    Репутация:
    0
    Почему это не запустится? Достаточно просто с собой взять требуемые пэкэджи и всё!
     
  11. Poseidon

    Poseidon Гость

    Репутация:
    0
    И в итоге общий размер проги, со всеми пакетами будет завен тем же 300к
     
  12. Barmutik

    Barmutik Гость

    Репутация:
    0
    Это да .. но если у Вам есть несколько прогграмм использующих одни и теже пакеты .. то в итоге можно здорово сэкономить на суммарном объёме...
     
  13. simon

    simon Гость

    Репутация:
    0
    Не помню, как в Дельфях, в Билдере еще одна фича присутствует:
    [Project->Options->Linker->Linking->Use dinamik RTL] (runtime library)

    Для: Barmutik
    Можно поподробней? Я ж так понял, это не про RAR?
     
  14. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Конечно, паковать можно. Например тем же ASPack. Вот только смысл? На диске программа действительно будет занимать меньше места. Но в ОЗУ она же все равно будет распакована и займет прежний размер!
     
  15. Barmutik

    Barmutik Гость

    Репутация:
    0
    Но если Вам надо сократить размер дистрибутива, для скачки к примеру, то паковщики это отличный выход!
     
  16. mike.dld

    mike.dld Гость

    Репутация:
    0
    KOL тут уже упоминали, почему бы его не использовать? Если "давно пишу на Делфи" - грех было не попробовать.
     
  17. Barmutik

    Barmutik Гость

    Репутация:
    0
    Любые сторонние библиотеки увеличивают процент нестабильной работы программы в геометрической прогрессии .. исключая конечно самые массовые и хорошо оттестированные.
     
  18. Poseidon

    Poseidon Гость

    Репутация:
    0
    <!--QuoteBegin-mike.dld+17:08:2005, 14:07 -->
    <span class="vbquote">(mike.dld @ 17:08:2005, 14:07 )</span><!--QuoteEBegin-->KOL тут уже упоминали, почему бы его не использовать? Если "давно пишу на Делфи" - грех было не попробовать.
    [snapback]23601" rel="nofollow" target="_blank[/snapback]​
    [/quote] Ну я давно пишу на Delphi. Но от КОЛ отказываюсь. Почему, уже сказал Barmutik. Так что лучший выриант уменшить размер проги - это отказаться от VCL и написать ее на чистом WinAPI. То, что занимало 500 Мб, будет занимать 30.
     
  19. Barmutik

    Barmutik Гость

    Репутация:
    0
    Тогда уж не зачем писать на Delphi.... уж лучше на С++
     
  20. Баламут

    Баламут Well-Known Member

    Репутация:
    0
    Регистрация:
    27 июл 2005
    Сообщения:
    76
    Симпатии:
    0
    Писать на С?!! Нет уж, увольте. По мне так проще на ассемблере. По крайней мере код прост и понятен. Нет, писать на С++ по DOS было конечно просто здорово. Но после того, за за реализацию компилятора взялись мелкомягкие... Использовать API все-таки лучше в связке с асмом. И в обратном меня уже никто не переубедит.
     
Загрузка...
Похожие Темы - Опять про размер
  1. vitte
    Ответов:
    10
    Просмотров:
    3.058
  2. Renat11111
    Ответов:
    8
    Просмотров:
    3.796
  3. sanch
    Ответов:
    7
    Просмотров:
    3.965
  4. makaset
    Ответов:
    26
    Просмотров:
    8.705
  5. sanch
    Ответов:
    5
    Просмотров:
    3.132

Поделиться этой страницей