> Tech > Optimisation d’arguments

Optimisation d’arguments

Tech - Par iTPro - Publié le 13 octobre 2014
email

Les optimisations vues jusqu'à présent, bénéficient à tous les genres de programmes.

Optimisation d’arguments

Tandis que celle-ci, l’optimisation d’arguments, vise une performance bien précise : le coût du passage des pointeurs d’espace entre des procédures.

Pour justifier l’optimisation d’arguments, nous devons comprendre la différence entre le pointeur d’espace et les adresses d’espace. Tous deux contiennent l’adresse de données quelque part dans le stockage. Vous pouvez considérer une adresse d’espace comme simplement l’adresse brute des données, tandis qu’un pointeur d’espace contient aussi des informations d’intégrité.

Les programmeurs ILE n’ont le droit d’accéder directement qu’aux pointeurs d’espace, pas aux adresses d’espace. Cela, pour éviter qu’ils n’accèdent, par inadvertance ou malveillance, à des données sur lesquelles ils n’ont pas de droits. Et aussi pour s’assurer que les pointeurs d’espace ne servent qu’à accéder aux données et ne sont pas faussement considérés comme des pointeurs vers du code ou des objets système.
Cependant, cette intégrité système a un léger coût. Un pointeur d’espace est plus grand qu’une adresse d’espace : contrairement au premier, la seconde tient dans un registre matériel. Ce point est intéressant quand des pointeurs sont passés d’une procédure à une autre ou sont renvoyés d’une procédure à une autre. Un pointeur d’espace doit être passé en mémoire, mais une adresse d’espace sera passée plus efficacement dans des registres.

La syntaxe qui décrit les pointeurs d’espace varie d’un langage ILE à un autre. En C ou en C++, ce sont des pointeurs traditionnels, vers des données d’un type quelconque. Par exemple : int* et char*. En RPG, les pointeurs d’espace sont appelés pointeurs de base (basing pointers), et sont signalés par un astérisque dans la colonne Internal Data Type de la D spec. En COBOL, les pointeurs d’espace sont décrits par la clause USAGE POINTER.

Le terme “procédure” a aussi des noms différents dans chaque langage. En C ou C++, le mot désigne génériquement toute procédure, fonction, ou méthode. En RPG, il désigne les sous- procédures. Le concept de procédure n’existe pas en COBOL, même si des programmes COBOL peuvent invoquer des procédures dans d’autres langages ILE en utilisant l’instruction CALL.

Téléchargez gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 13 octobre 2014