Когда происходит процесс распаковки и как на самом деле работает флаг SolidBreak в Inno Setup?

В Inno Setup есть такая вещь, как SolidCompression, и в разделе [Files] используется флаг, который равен solidbreak. Может ли кто-нибудь объяснить мне, как работает вышеупомянутый флаг, когда нам действительно нужно его использовать и когда происходит процесс распаковки?


person JConstantine    schedule 04.11.2020    source источник


Ответы (1)


Твердое сжатие означает, что файлы сжимаются так, как если бы все файлы были одним большим файлом. Обычно это приводит к лучшему сжатию, потому что информация о сжатии, созданная во время одного файла, будет перенесена в следующий вместо перезапуска. Недостатком является то, что для того, чтобы распаковать конкретный файл во время установки, нужно распаковать все файлы перед ним.

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

Если вы хотите использовать надежное сжатие и у вас есть файлы, необходимые для установки всех, не используйте solidbreak, но если у вас есть список флажков для выбора модулей, вы можете хотите рассмотреть возможность применения solidbreak к некоторым или ко всем дополнительным модулям. Если вы этого не сделаете, все файлы будут распакованы, даже если для выбранных опций нужен только один файл some. Точный результат будет зависеть от размера файла и так далее, поэтому я не могу сказать больше, чем то, что вам, возможно, придется поэкспериментировать, чтобы увидеть результаты.

person Community    schedule 09.11.2020