Il faut bien l’admettre, mais l’optimisation des performances logicielles est bien souvent ignorée. De nos jours, cette activité est souvent peu pratiquée, sacrifiée sur l’autel de la simple mise en ligne de nouvelles fonctionnalités à toute allure. Pendant ce temps, les logiciels, en majeure partie peu performants, brassent les octets des processeurs. La faute à des développeurs peu formés, connaissant peu les algorithmes essentiels, les structures de données principales et leur performance, mais aussi à des langages parfois très peu adaptés, et bien sûr le manque de volonté ou même de besoin. Dans un monde qui s’agite – à juste titre – autour de la durabilité, on ne peut qu’être surpris de la situation en cours.
Mais la situation pourrait changer. Les IAs pourraient sérieusement aider à améliorer la situation, selon plusieurs axes d’ailleurs. Certaines des IAs actuelles les plus performantes (Claude 4 ou Google Gemini 2.5 Pro) sont maintenant capables d’être interrogées sur des morceaux de code de plusieurs centaines de ligne, de comprendre leur fonctionnement (et donc de commenter ligne par ligne ce qui est fait) et de proposer des changements parfois pertinents.
Ces mêmes IAs interrogées alors sur la façon d’améliorer les performances vont bien sûr commencer par suggérer de profiler l’application. C’est évidemment la première chose à faire. On peut pas travailler à améliorer des performances sans mesure précise permettant de savoir où focaliser les efforts. Ensuite, les IAs sont capables de faire des propositions, plus ou moins pertinentes et intéressantes, mais le plus souvent à creuser. Leur utilité est donc non négligeable.
Enfin, là où les IAs peuvent se montrer remarquables, c’est dans la phase finale d’optimisation, lorsque tout a été tenté avec un langage taillé pour les performances (tel que C++, C ou Rust) : l’utilisation des intrinsics est souvent le dernier recours, et avec des gains parfois énormes. Les processeurs modernes sont bourrés des ces instructions (voir le cas d’Intel ou d’AMD) que les compilateurs essaient d’utiliser du mieux qu’ils peuvent. Certaines IAs se débrouillent avec une facilité remarquable pour transformer un code classiques et code vectorisé avec ces instructions très peu connues. Y compris savoir jongler avec les processeurs supportant ou non certains groupes de ces instructions (très utile notamment avec les processeurs Intel qui ont abandonné le support de l’AVX-512).

L’utilisation toujours croissante des IAs dans le secteur du logiciel est donc un bienfait au service des logiciels mieux relus, mieux optimisés et plus sobres.