Il importe de savoir où une application passe son temps et de chiffrer cette notion.
La loi d’Amdahl
Pour cela, tournons-nous vers la loi d’Amdahl.
C’est l’augmentation maximale de vitesse que l’on peut obtenir en améliorant la performance d’une partie seulement d’un système. Dans notre cas, la loi peut être paraphrasée ainsi :
L’augmentation de la vitesse d’une application que l’optimisation peut fournir, est limitée par la fraction du temps d’exécution total que l’application passe dans le code optimisé.
Supposons une application qui effectue sa tâche en 1000 secondes sur une certaine série d’entrées. Et supposons que cette application passe 700 secondes à exécuter des appels système vers le système d’exploitation, et les 300 secondes restantes dans le code d’application proprement dit. Maintenant, supposons que vous recompiliez l’application en ajoutant l’optimisation. Par exemple, vous pourriez élever le niveau d’optimisation ou ajouter l’une des techniques d’optimisation avancées qui suivent dans cet article. Dans cet exemple, la technique d’optimisation améliore de 10 % la performance du code généré.
Quel est donc l’effet sur la performance de l’application ?
Comme l’amélioration ne s’applique qu’aux 300 secondes passées dans l’application, cette portion de l’application s’exécute maintenant en 270 secondes. L’intervalle de 700 secondes consacré à exécuter les appels système n’est pas affecté par l’optimisation du code de l’application, et donc reste inchangé. Par conséquent, l’application s’exécute maintenant en 970 secondes. Autrement, l’amélioration de 10 % du code applicatif se traduit par une amélioration de 3 % de la performance globale (à noter que si l’on inversait les contributions système et application, la performance de l’application serait améliorée de 7 %).
Cela signifie-t-il que vous ne devriez pas optimiser votre code si l’application passe le plus clair de son temps à faire des appels système ? Non. Comme le démontre cet exemple, l’optimisation peut encore produire des gains mesurables. Mais en sachant combien de temps votre application consacre à chaque processus, vous pouvez mieux déterminer les avantages produits par les diverses techniques d’optimisation.
Le meilleur moyen de voir où votre application passe son temps, est d’utiliser la fonction Profile Performance Explorer. Vous pouvez en savoir plus sur Performance Explorer dans l’IBM i Information Center.
Mesurer la performance
Si vous envisagez d’essayer différentes techniques d’optimisation, vous souhaiterez connaître la vitesse d’exécution de vos programmes. Certes, vous pourriez regarder l’application s’exécuter, chronomètre en main, mais ce ne serait ni fiable, ni satisfaisant, ni instructif.
Heureusement, il existe une meilleure méthode. À partir de la release 6.1, vous disposez de la commande Analyze Command Performance (ANZCMDPRF) pour connaître la durée d’exécution de toute commande. Si une application peut être testée en appelant un programme unique, utilisez cette commande :
> ANZCMDPFR CMD(CALL applib/mypgm)
ANZCMDPFR command completed successfully
À première vue, on ne voit pas bien l’intérêt de ce résultat. Mais si vous placez le curseur sur le message de bonne exécution (command completed successfully) et si vous appuyez sur F1, vous voyez s’afficher diverses statistiques sur la performance de l’application. À savoir : le temps que l’application a mis pour s’exécuter, le temps qu’elle a passé dans la CPU, et les types et quantités d’I/O effectués par le programme.
En exécutant ANZCMDPFR avant et après l’application des différents niveaux et techniques d’optimisation, vous verrez clairement les effets bénéfiques sur les performances.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Afficher les icônes cachées dans la barre de notification
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- L’analytique prédictive au service de la décarbonation en France
- Ofelia, ex-Bonitasoft, lance une solution d’orchestration IA agentique
- Le bruit au travail et ses effets sur la concentration dans les bureaux modernes
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
