La qualité d’un logiciel s’apprécie entre autres par ses performances, comme un court temps de réponse pour effectuer une tâche donnée. Or, malgré des mises à jour fréquentes, divers problèmes peuvent miner les performances d’un programme informatique et ruiner l’expérience de ses utilisateurs. Pour corriger les défauts sous-jacents, les informaticiens réalisent divers tests qui ont le désavantage d’être coûteux. Weiyi Shang, professeur au Département d’informatique et de génie logiciel de l’Université Concordia, a mis au point une approche inédite pour remédier à cette situation.
Nommée PerfJIT, cette méthode automatisée fournit une estimation en temps réel de l’impact d’un changement donné de code source sur la performance globale d’un logiciel. Pour ce faire, le scientifique et son équipe se fient aux modifications effectuées dans les versions antérieures d’un logiciel pour prédire l’impact des versions futures de même nature. Cet historique est accessible par l’entremise du référentiel d’entrepôt de données d’un logiciel. L’approche PerfJIT a été mise à l’épreuve sur des logiciels populaires en libre-service comme Hadoop, Apache Cassandra et OpenJPA.
En fin de compte, les prédictions de Weiyi Shang et de ses collaborateurs sont précises à 90 %, ce qui indique que leur modèle est bel et bien discriminant. Ils ont aussi établi un classement des parties de code source qui, lorsque modifiées, affectent le plus la performance globale d’un logiciel. La similarité entre ce classement et un autre fondé sur la seule théorie est de 85 %, ce qui, encore une fois, est assez bon. Les résultats de ces travaux ont fait l’objet de plusieurs publications dans des revues savantes.