EnergyTracer

Mesurer l'empreinte énergétique du code

Mesure et compare la consommation énergétique de variantes de code pour objectiver l'impact des choix d'implémentation

Développé dans le cadre d'un mémoire de master en informatique à l'Université de Namur, EnergyTracer mesure la consommation énergétique de deux variantes de code afin d'objectiver l'impact réel des choix d'implémentation, plutôt que de se fier à des hypothèses.

Comment ça fonctionne ?

1

Fournissez deux variantes de code

Une version avec un "code smell" et une version corrigée.

2

Lancez une mesure

Choisissez un profiler (Zeus ou CodeCarbon) et exécutez plusieurs itérations de chaque variante.

3

Obtenez un comparatif

Un rapport avec analyse statistique, accompagné de graphiques et de visualisations comparatives.

Fonctionnalités principales

🌐 Multi-langages

Python et Java pris en charge, avec une architecture extensible pour ajouter facilement de nouveaux langages.

⚡ Deux profilers

Zeus pour des mesures matérielles précises sur Apple Silicon, CodeCarbon pour une estimation logicielle multiplateforme.

📊 Analyse statistique automatisée

Test de Welch, taille d'effet de Cohen et calcul de significativité pour fiabiliser les comparaisons.

📈 Visualisations riches

Graphiques comparatifs, box plots et violin plots générés automatiquement pour chaque métrique.

Profilers pris en charge

🖥️

Mac Silicon (Zeus)

Lecture directe des compteurs matériels via IOKit, avec une précision sub-milliseconde par composant (CPU, GPU, ANE, DRAM). Réservé aux Mac Apple Silicon.

🌍

CodeCarbon

Estimation logicielle basée sur le TDP du processeur et son taux d'utilisation, multiplateforme, avec conversion en équivalent CO₂.

Contribuer au projet

EnergyTracer vient de rejoindre le collectif et a besoin de contributeurs pour accélérer son évolution.

🧩 Ajouter un langage

Implémentez l'interface CodeRunner pour prendre en charge un nouveau langage (Rust, Go...).

🔬 Valider les mesures

Exécutez des expériences sur votre propre matériel pour élargir la base de résultats.

📊 Améliorer l'analyseur

Enrichissez ET-analyzer avec de nouvelles métriques ou de nouveaux formats de rapport.

📝 Enrichir la documentation

Complétez le guide d'expérimentation et les exemples de code mesuré.

Une question sur EnergyTracer ?

Je suis :