KDAB, une société de consulting allemande qui développe des outils graphiques et de visualisation, a lancé Hotspot 1.0, une interface GUI qui permet de visualiser les données de performance générées par Perf, l'outil d’analyse de performances de Linux. Ce dernier analyse les comportements des systèmes et des applications dans Linux et génère un rapport détaillé dans lequel le développeur peut voir, entre autres choses, les appels, les programmes, les opérations I/O ou les événements réseaux qui monopolisent le plus de temps système. Mais, parce que Perf est un outil en ligne de commande, la plupart de ses rapports sont statiques, et il faut un processus en plusieurs étapes pour produire un rapport interactif utile à partir des données fournies par Perf.

Développé par l'un des contributeurs de Perf, Milian Wolff Hotspot - à ne pas confondre avec le projet de machine virtuelle Java - est destiné à remplacer en partie le système de reporting existant de Perf. Contrairement à lui, Hotspot permet de visualiser les données de performance qu'il a compilées dans une interface graphique interactive construite à l'aide de la bibliothèque d'interface Qt. Des vues différentes accessibles par plusieurs onglets permettent d’afficher les données de Perf : des listes classées par ordre d’importance (de haut en bas ou de bas en haut), des listes d'appelant/appelé et un graphique des performances en Flame, généré habituellement avec un logiciel tiers. KDAB affirme que son interface est beaucoup plus intuitive et utilise des défauts raisonnables : « Nous incluons toujours des Inline Frames ou cadres imbriqués et nous montrons (dans la vue appelant/appelé) le fichier source et l’information en ligne ».

Les données de performance des runtimes à suivre

Hotspot présente aussi quelques limites. Par exemple, certaines fonctionnalités dans les mécanismes de rapports textuels par défaut de Perf comme le suivi des traces d’exécutions ne sont pas disponibles dans Hotspot. « Cela signifie qu'il est actuellement impossible de faire du profilage hors CPU avec Hotspot », explique KDAB. Hotspot ne permet pas non plus d’obtenir des détails complets sur les annotations dans le code suivi. Il n’est également pas possible de créer des ensembles de colonnes définis par l'utilisateur dans les différentes vues synthétiques.

Mais l’équipe de Hotspot compte bientôt ajouter ces fonctionnalités manquantes, en plus d'autres types de rapports de performance qui ne sont pas uniquement basés sur des données de Perf. Hotspot pourrait par exemple afficher des données de performance générées par les runtimes du langage, à l’image de l'outil cProfile de Python. « Nous envisageons de prendre en charge d’autres formats de performance sur les données », a déclaré l'équipe sur la page du projet GitHub dédiée à Hotspot.