Optimisation (Object Pascal)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Object Pascal - Index

Type

Commutateur

Syntaxe

{$O+} ou {$O-} {$OPTIMIZATION ON} ou {$OPTIMIZATION OFF}

Par défaut

{$O+} {$OPTIMIZATION ON}

Portée

Locale (sauf pour le compilateur croisé Object Pascal pour le périphérique iOS, qui a une portée globale)



La directive $O contrôle l'optimisation de code. En mode {$O+}, le compilateur effectue un nombre d'optimisations de code, tels que le placement de variables dans des registres CPU, en éliminant des sous-expressions communes et en générant des variables d'induction. En mode {$O-}, toutes ces optimisations sont désactivées.

Il ne sera jamais nécessaire de désactiver les optimisations sauf pour certaines situations de débogage. Toutes les optimisations effectuées par le compilateur Object Pascal n'altéreront pas la signification d'un programme. En d'autres termes, le compilateur n'effectue aucune optimisation "non sécurisée" nécessitant une connaissance spéciale du programmeur.

Remarques :

  • La directive $O permet d'activer ou de désactiver l'optimisation pour une procédure ou une fonction toute entière. Vous ne pouvez pas activer ou désactiver l'optimisation pour une seule ligne, ni pour un groupe de lignes au sein d'une routine.
  • Pour les applications iOS ciblant le périphérique iOS (et qui utilisent par conséquent le compilateur pour le périphérique iOS), la directive $O a une portée globale. Le compilateur ne génére pas d'avertissement ou de messages d'indication, mais l'optimiseur utilise le dernier paramètre si plusieurs options $O existent dans un seul fichier de code source.
    Toutefois, pour les applications iOS qui ciblent le simulateur iOS (et qui utilisent le compilateur pour le simulateur iOS), la directive $0 a une portée locale, comme cela est le cas pour les compilateurs de bureau Object Pascal.