> 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

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 13 octobre 2014