Почему делает здание с пакетами во время выполнения, делают EXE-файл меньшим?

Причина большая часть использования сайтов это - вероятно, SEO (Оптимизация поисковой системы). Yahoo раньше давал разумное взвешивание присутствию поискового ключевого слова в самом URL, и это также помогло в результате Google также.

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

Что касается самого stackoverflow, SEO могла бы быть мотивацией (привычка - вторая натура) или просто для удобства использования.

9
задан Rob Kennedy 14 December 2009 в 04:45
поделиться

5 ответов

Когда вы собираете пакеты времени выполнения, VCL и RTL загружаются из пакетов, и поэтому их код не нужно связывать с вашим EXE. Таким образом, EXE становится меньше, но общая установка становится больше, так как вы не можете использовать интеллектуальное связывание для уменьшения размера пакетов.

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

14
ответ дан 4 December 2019 в 08:01
поделиться

Одной из основных причин использования пакетов времени выполнения является необходимость детализации модуля для развертывания / обновления на носителе, который плохо принимает большие файлы, например, по сети с низкой пропускной способностью. .

Поскольку рабочие пакеты остаются неизменными до тех пор, пока вы не измените свою версию Delphi - как навсегда для тех, кто все еще находится на D7 ;-) - это позволяет развертывать новые версии или новые приложения без полезной нагрузки RTL / VCL.

Но, как и в случае с DLL, вы должны быть осторожны с версией.

1
ответ дан 4 December 2019 в 08:01
поделиться

В ответах пока упускается один важный момент: пакеты времени выполнения полезны так же, как полезны библиотеки DLL, если у вас есть набор приложений, которые работают вместе и устанавливаются вместе. Конечно, вы можете связать VCL и сторонние библиотеки со всеми из них, создавая их без пакетов, но в зависимости от количества приложений и используемых библиотек размер этих приложений вместе взятых будет больше, чем размер их, созданных с пакетами времени выполнения плюс размер этих пакетов времени выполнения. Это создаст большие пакеты установки, что не является большой проблемой, как раньше.

Но одновременное использование всех этих приложений также приведет к гораздо большей нагрузке на систему. Поскольку каждое приложение использует свою собственную копию VCL и других библиотек, все они должны быть загружены с диска в память, что вызывает больше операций ввода-вывода. И тогда в памяти будет несколько их копий, каждая из которых будет занимать место для кода. Когда используются пакеты времени выполнения, каждое приложение будет иметь свою собственную область памяти для данных, но все они будут использовать одну и ту же копию кода пакетов в памяти.

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

9
ответ дан 4 December 2019 в 08:01
поделиться

Не знаю о D2010, но в D2006 в меню проекта есть опция под названием «Информация для ProjectName».

Это покажет вам, какие пакеты будут включены после компиляции.

Однако, как заявил Мейсон, использование пакетов времени выполнения имеет небольшое преимущество и довольно много недостатков.

0
ответ дан 4 December 2019 в 08:01
поделиться

Относительно вашего вопроса «какие файлы следует включить в установку»: вы можете использовать Dependency Walker , чтобы отследить зависимости библиотек.

3
ответ дан 4 December 2019 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: