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

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

  1. Баламут

    Баламут Well-Known Member

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

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

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

    Barmutik Гость

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

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

    Баламут Well-Known Member

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

    zubr Гость

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

    Баламут Well-Known Member

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

    Barmutik Гость

    Статическое или динамическое линкование никак не скажется на размере...

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

    ???? Гость

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

    Баламут Well-Known Member

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

    Poseidon Гость

    <!--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 Гость

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

    Poseidon Гость

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

    Barmutik Гость

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

    simon Гость

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

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

    Баламут Well-Known Member

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

    Barmutik Гость

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

    mike.dld Гость

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

    Barmutik Гость

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

    Poseidon Гость

    <!--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 Гость

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

    Баламут Well-Known Member

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

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