> Tech > Optimisation d’arguments

Optimisation d’arguments

Tech - Par Renaud ROSSET - 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.

Optimisation d’arguments

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 cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Tech - Par Renaud ROSSET - Publié le 13 octobre 2014