Le code Lab est un espace d'expérimentation. Voici une liste des projets. Pour en savoir...

Titre Description
Greenfox pour Firefox

Description

Compatible avec Firefox 3.6 -> 11.x sous Windows / Linux

Code source disponible sur GitHub : https://github.com/GreenCodeLabGroup/Tool-GreenFox

Téléchargement sur la page dédiée Mozilla

License GPL v3 (http://www.gnu.org/licenses/gpl.html, traduction française ici : http://org.rodage.com/gpl-3.0.fr.html)

L'extension GreenFox pour Firefox, initialement développée dans le cadre du GreenChallenge 2010 de l'Université du SI (USI), a été reprise par l'équipe du Green Code Lab. Cette extension a pour but de mesurer la consommation processeur, en ms, du processus Firefox, dans une période fixée par l'utilisateur.

L'unité de la milliseconde (ms) correspond à la manière qu'a un système informatique de compter le temps d'exécution d'un processus. Pour plus d'informations, voir la page Wikipédia : http://en.wikipedia.org/wiki/Process_time .

Ainsi, GreenFox permet de mesurer entre 2 points le temps CPU consommé. Le fait d'obtenir un chiffrage précis de cette consommation a deux utilités principales :

  1. comparer l'utilisation CPU de différents sites, ou de différentes version d'un même site

  2. traduire cette consommation temporelle (ms) en consommation énergétique (kwh) à l'aide d'un modèle établi, ou via la mesure en parallèle du delta de surconsommation par rapport à une situation au repos (idle).

Utilisation

Après installation, l'extension s'affiche en bas du navigateur :

Son utilisation est ensuite très simple :

  1. Cliquer sur le bouton Start afin de commencer la mesure. L'icône change alors :

  1. Cliquer sur le bouton Stop pour terminer la mesure. L'extension affiche alors la consommation CPU du processus Firefox pendant cette période :

Avertissement

L'extension mesure la consommation de l'intégralité du processus Firefox, extensions y compris. Il est donc recommandé, afin d'obtenir la mesure la plus fiable possible, de l'utiliser sur un Firefox vierge.

De plus, cette extension se borne à la mesure de consommation de la partie client d'un site Web. Si le but est de mesurer la consommation totale d'un site, il faut également mettre en place un système de mesure sur la partie serveur.

Pistes d'amélioration

  • Déclenchement automatique de la mesure et arrêt lorsque la page a fini de se charger

  • Compatibilité Mac

  • Script pour configuration / compilation automatique en fonction de la plate-forme voulue

Détails techniques

Le travail a essentiellement consisté en l'adaptation du code, lui permettant désormais de tourner sur les versions actuelles de Firefox. En effet, depuis la version 4, Firefox utilise le moteur Gecko 2. L'extension initiale a été développée en utilisant les composants XPCOM, qui sont désormais déconseillés et particulièrement durs à utiliser dans Gecko 2 (https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0 ). Sans rentrer dans les détails, la mise en place d'un environnement de développement et la construction pour chaque version différente de Firefox rend l'utilisation de composants XPCOM pénible. Ce post explique plus en détail pourquoi les composants XPCOM sont amenés à disparaître : http://adblockplus.org/blog/binary-xpcom-components-are-dead-js-ctypes-is-the-way-to-go .

Cette nouvelle version de GreenFox se base désormais sur js-ctypes. Cette méthode permet de compiler une librairie « ordinaire » (.dll, .so), de l'inclure dans une extension Firefox, et de l'utiliser dynamiquement avec du code Javascript : https://developer.mozilla.org/en/js-ctypes .

Une limitation cependant : l'utilisation de librairies codées en C++ est très limitée.

Greenfox for Firefox

Description

Compatible with Firefox 3.6 -> 12.x on Windows / Linux

Source code available on GitHub : https://github.com/GreenCodeLabGroup/Tool-GreenFox

Addon available on Mozilla dedicated page

Under GPL v3 license (http://www.gnu.org/licenses/gpl.html)

The Firefox addon FreenFox, initially developed for FreenChallenge 2010 of USI school (french university), it has been forked by the Green Code Lab team (a french group working on Green Patterns). The aim of this extension is to measure the CPU consumption of the Firefox process, in milliseconds, in a period given by the user.

The millisecond unit (ms) has been chosen because it is the unit used by Operating Systems to measure a process consumption (more information on Wikipedia : http://en.wikipedia.org/wiki/Process_time).

Thus, GreenFox can measure the CPU consumption between two points. This is very usefull to:

  1. compare the CPU use of two sites, or of two versions of the same site

  2. convert this temporal consumption (ms) in energetic consumption (kWh) through a given energetic model, or by measuring initially the idle consumption.

How to use

After having installed the addon, it shows up at the bottom of the Firefox browser :

Its is very easy to use :

  1. Clic on start button to start the measure. The icon changes :

  1. Clic on stop button. It now displays the CPU consumption of the process in this period :

Warning

The extension measures the consumption of the whole Firefox process, including other addons. It is recommended to use GreenFox on a clean Firefox to get the most reliable measure.

Furthermore, it only measures the client side of a website. If your final aim is to measure the whole website consumption, you will also have to measure the server side.

Green Plugwise

The plugwise modules can measure the energy consumption of electronic devices. However these modules are not  appropriate to measure the consumption of software. Indeed, the measures are done every few minutes. The Green Plugwise is designed to recover data from plugwises every second and display curves for energy consumption of software.

The project breaks down as follows:

  • PlugwiseLib: library of control.
  • PlugwyseGUI: GUI for measuring Plugwise

The project is currently only available on Windows.
Links :

Green Plugwise

Les modules plugwise permettent de mesure la consommation d'énergie des appareils électronique. Cependant ces modules ne permettent pas une mesure adaptée à la mesure de la consommation d'un logiciel. En effet, les mesures ont une fréquence de quelques minutes. Le projet Green Plugwise a pour but de récupérer les données des plugwises toutes les secondes et de les afficher pour obtenir les courbes de consommation d'énergie des logiciel.
Le projet se décompose de la manière suivante:

  • PlugwiseLib : librairie de control des modules. 
  • PlugwyseGUI : interface graphique de mesure des plugwise

Le projet est pour l'instant uniquement disponible sur Windows.
Liens :

Benchmark des langages

Les langages de programmation ne sont pas tous égaux devant l'éco-conception. Dans ce projet, un algo de calcul SHA est implémenté dans différents langages pour comparer la performance.