sne1 @ 22.07.06 02:07:50
вся эта ерунда для распаковки будет кушать лишнюю RAM, не говоря уже о замедлении запуска программы, пусть и не на много.
Флеш-память намного медленнее процессора. Процессор обрабатывает те же количества данных почти на порядок быстрее.
Поэтому если, например, сожмется экзешник в 2 раза, то с флеша он прочитается в 2 раза быстрее. И этот выигрыш будет намного выше, чем некоторая задержка на расжатие, которую выполнит процессор.
По этой причине, даже во внутренней файловой системе Windows Mobile давно встроены алгоритмы сжатия, жаль что их можно использовать только для прошивок.
Для распаковки в UPX используется алгоритм inplace - распаковка происходит поверх запакованных данных (в том же буфере). Промежуточных буферов не выделяется, и доп. память не используется (за исключением пары десятков байт на код распаковщика).