Comprimidos os dados do programa (incluindo código compilado e arquivos de dados, como imagens que existam no programa, textos, recursos, etc) seguindo especificações de cada plataforma e sistema suportados, ele adiciona um pequeno módulo escrito em assembler no início do arquivo. Esse módulo é responsável por extrair o conteúdo do arquivo para a memória e passar o controle a ele.
Seu programa deverá funcionar exatamente como antes, sem nenhuma intervenção do usuário. Ele permite também compactar DLLs, arquivos OCX e outros (que contenham no fundo código executável).
O UPX é extremamente rápido tanto para compactar como para extrair, de forma que praticamente não há redução no desempenho da sua aplicação. Pelo contrário, algumas vezes até melhora significativamente com executáveis grandes, que serão lidos da mídia bem mais rápido, por estarem em arquivos menores.
Para você ter uma idéia da velocidade de descompactação, em um antigo Pentium 100 Mhz ela chega a mais de 10 MB por segundo. Muitos programas têm executáveis com menos de 10 MB, já deu pra ver que o tempo de abertura praticamente não será modificado (isso que estamos falando num antiquado Pentium de 100 Mhz).
Sobre a taxa de compressão, é bem animadora. Em alguns casos beira os 70%. Seu programa ficará bem menor. Em alguns dos meus que testei, por exemplo, obtive esses resultados, com os programas finais funcionando normalmente:
Tamanho: 151KB
Licença: Gratuito
Sistema: Windows 98/Me/2000/XP/2003






