Pergunta

Como posso reduzir os recursos dentro da minha aplicação? Eu tentei uma série de truques Tenho reduzir e código reescrito, reduzir o número de linha, Reduzir comentários, Comprimiu o EXE final, mas esta não é a maneira que eu quero ir, Melhorar o tipo de variável elenco, Remover ícones, BMP, JPG, de dentro do aplicativo Preciso das minhas aplicações para ser tão pequeno quanto possível no EXE final e no consumo geral de recursos. Qualquer mais idéias, bons artigos sobre este assunto Graças

Foi útil?

Solução

Coloque todas as imagens que o programa usa mais de uma vez em listas de imagem ou componentes TGraphic, e colocá-las em um módulo de dados. Ligar todos os seus componentes utilizando esses glifos às listas de imagem. Se você usar o objeto Inspector para adicionar o mesmo glifo para vários componentes que você vai acabar com várias cópias do mesmo, aumentando o seu tempo de carga e o seu tamanho executável e trabalho conjunto.

Outras dicas

O que sobre a mudança informações de depuração off nas opções do projeto:

  • nenhuma informação de depuração
  • nenhuma verificação de tempo de execução
  • reduzir o número de unidades usos externos, se possível.

Mas informações de depuração kan ser um grande assassino.

Eu não gastar todo o tempo removendo comentários o compilador tiras-los de qualquer maneira

Você pode referenciar suas imagens a partir de um serviço externo (por exemplo, Amazon S3)

Um truque bom para reduzir o tamanho do executável (na verdade, o tamanho PE-imagem, como isso se aplica a DLL também), quando deslocalização não é um problema:

Deixe a deslocalização-info para fora!

Em Delphi, você poderia fazê-lo como este:

// Remove relocation table (generates smaller executables) :
// (See http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html)
{$SetPEFlags 1} // 1 = Windows.IMAGE_FILE_RELOCS_STRIPPED

Felicidades!

Drop the VCL e uso KOL e MCK: http://kolmck.net/

Esta é radical e mudança muito grande, mas vai ter o tamanho para baixo exe.

Não crie todas as formas automaticamente, embora Delphi dá-lhe a opção agora, e fez isso incondicionalmente para novas formas em versões anteriores. Apenas criar o formulário principal, e usar o código a seguir (pseudo) para a exibição de diálogos modais:

procedure TMainForm.OptionDialog(Sender: TObject);
var
  Dlg: TOptionDialog;
begin
  Dlg := TOptionDialog.Create(nil);
  try
    // prepare dialog
    if Dlg.ShowModal = mrOK then begin
      // apply changed settings
    end;
  finally
    Dlg.Free;
  end;
end;

Isto irá diminuir o tempo de carregamento do aplicativo e reduzir o uso geral de recursos, especialmente para diálogos complexos com muitos controles.

Meça primeiro, em seguida, otimizar. Quão grande é a sua aplicação, e como grande você gostaria que fosse?

Você está preocupado com ...

O tamanho do arquivo .exe aplicativo no disco? Então ...

  • Construir com pacotes de tempo de execução em . Você vai ter uma pequena .EXE, mas precisará distribuir .bpls também.

A memória RAM usada pelo aplicativo? Então ...

  • Construir com pacotes de tempo de execução fora -. O vinculador irá omitir partes mais não utilizados de pacotes

O tamanho do instalador do aplicativo? Então ...

  • Construir com pacotes de tempo de execução Off
  • Configuração Use Inno
  • A maioria das sugestões acima?

O tamanho do aplicativo PLUS PACOTES / DLLs após a instalação? Então ...

  • Construir com pacotes de tempo de execução Off , e uso UPX
Project -> Options -> Compiler:
===============================
Optimization ON
Debug Information OFF
Local Symbols OFF
Reference Info OFF
Use debug DCUs OFF

Project -> Options -> Packages:
===============================
Build with runtime packages ON (but you will have to distribute your BPLs!)
Note to non-delphi folks:
a BPL is just a DLL, but with magic Delphi dust to make it easier to use.

Este artigo pode ser útil.

Será que realmente vale todo este problema? Nós não estamos vivendo em 640 vezes de memória KB mais.

Se você quiser você está EXE a ser menores, em seguida, usar dinâmica ligando de pacotes e bibliotecas. Isso dá a maior parte do impulso. também colocar todos os seus recursos (imagens, sons) em DLL separado. Você não vai salvar nada por exclusão de comentários e escrever todo o seu código em uma linha longa.

Geralmente falando, se você quiser um tamanho menor EXE, em seguida, ir com uma versão anterior do Delphi.

Eu sempre uso UPX para compactar exe arquivos. Ele funciona perfeitamente, muitas vezes resultando em uma compressão fator 2. E, claro, desativar todas as informações de depuração irá ajudar a reduzir o tamanho do arquivo.

Use um profiler de memória, como a da Red Gate para obter uma visão em tempo real para o uso de memória em tempo de execução.

UPX e ASPack vai criar um monte de problemas porque o antivírus falsos alarmes positivos. Kaspersky faz isso muito!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top