Avr 26

Dès que l’on crée une application avec Delphi, qui contient une fiche, même si celle-ci ne fait rien de plus, on obtient une application d’une certaine taille…

Delphi

Delphi

Les différentes options et/ou directives que l’on choisit peuvent influencer la taille… J’ai testé celles-ci qui ont été portées à mon attention par Matthias :

WEAKLINKRTTI & RTTI

J’ai ajouté ces directives à mon projet ainsi :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program Project1;

{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  {$IFDEF DEBUG}
    ReportMemoryLeaksOnShutdown := True;
  {$ENDIF DEBUG}
  Application.Run;
end.

 
Voici les différentes tailles constatées en compilant depuis Delphi XE4, une application 32 bits :

VCL Debug 10698 Ko
Release 2275 Ko
Release sans RTTI 1902 Ko
FMX Debug Windows 18267 Ko Sous OS X 31551 Ko
Release Windows 4802 Ko Sous OS X 7115 Ko
Release sans RTTI Windows 4039 Ko Sous OS X 5426 Ko

Comme vous pouvez le constater, si vous n’utilisez pas l’unité System.Rtti, vous pouvez facilement gagner de la place en utilisant ainsi ces deux directives (y) . Cela fonctionne bien sûr également en 64 bits même si je n’ai pas mis les valeurs dans le tableau ci-dessus. ;) De plus, sur un projet vide, la seconde directive ne change rien. Je la conserve néanmoins pour des projets plus conséquents, avec du code, où celle-ci s’avère réellement utile.

Attention !!!Vous remarquerez également que j’ai barré une taille pour OS X ; en effet, la première directive n’est pas compatible avec ce système d’exploitation. Par conséquent, j’utilise concrètement ceci dans mes projets FireMonkey :

{$IFDEF MSWINDOWS}
{$WEAKLINKRTTI ON}
{$ENDIF MSWINDOWS}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

 
Vous pouvez ajouter et sélectionner les configurations depuis le Gestionnaire de projets :

Gestionnaire de projets

Gestionnaire de projets

Encore merci (bow) à Matthias pour cette astuce intéressante !

 

Article mis à jour : en faisant quelques tests complémentaires avec Thierry, nous avons remarqué que la directive {$WEAKLINKRTTI ON} fait planter l’application sous Sous OS X.

Share

Lien permanent vers Réduire la taille d’une application Delphi Rédigé par Whiler \\ Tags : , , ,

Une réponse pour “Réduire la taille d’une application Delphi”

  1. Pings: Liens de l’épisode 17 de la saison 2 | Le Dev du Jeudi

Laisser une réponse

(requis)

(requis)

*

;) (lol) (y) |-( (hi) 8-) (angel) :s (clap) (bow) (tmi) (:| plus »

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.