Ce projet contient des benchmarks des appels systèmes Unix qui sont intéressants d'un point de vue didactique. Ils sont utilisés par le cours SINF1252 donné à l'UCL par le professeur Olivier Bonaventure.
Ils ont été écrits par Maxime De Mol, Nicolas Houtain et Benoît Legat avec l'aide d'Oliver Bonaventure.
Ils utilisent l'outil perf pour analyser différents conteurs ainsi que gnuplot pour afficher les benchmarks.
Le projet est constitué
- d'un dossier
lib
contenant des petites librairies statiques développées pour le projet ainsi que divers scripts; - ainsi qu'un dossier par benchmark.
Le résultat du benchmark est affiché dans une page
html
qu'on peut obtenir en lançantmake show
dans le dossier correspondant.
La documentation se trouve ici mais elle peut être générée à l'aide de Doxygen ainsi
$ doxygen Doxyfile
Il suffit alors d'ouvrir doc/html/index.html
pour voir la documentation.
Commencez par vous assurez que vous avez les dépendances nécessaires
$ sudo apt-get install build-essential dh-autoreconf gnuplot libgd2-xpm-dev libtool autoconf
$ sudo apt-get install linux-tools-common linux-tools-generic # perf
Il est nécessaire d'avoir un gnuplot récent (4.2 est trop vieux, 4.6 marche bien). Si vous êtes sur une des machines des salles, il vous faudra donc l'installer from source (voir plus loin).
Pour générer les Makefile
nécessaires à la compilation à partir
des Makefile.am
, exécutez
$ git clone https://github.com/blegat/benchmark.git
$ cd benchmark
$ ./bootstrap.sh
Ça va non seulement générer un Makefile
à la racine qui compile
les librairies et tous les benchmarks mais aussi un Makefile
dans
le dossier lib
qui compile les librairies et un dossier dans
chaque dossier de benchmark qui peut compiler le benchmark mais aussi
l'exécuter et générer et afficher une page html
à l'aide make show
.
Par exemple, pour essayer le benchmark io
, faite suivre ce ./bootstrap.sh
par
$ cd io
$ make show
Assurez-vous d'installer libgd2-xpm-dev
pour avoir le support de png dans gnuplot
$ sudo apt-get install libgd2-xpm-dev
puis téléchargez et installer le
(./configure
devrait trouver libgd
et activer le support de png pour gnuplot)
$ wget http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.5/gnuplot-4.6.5.tar.gz
$ tar xzvf gnuplot-4.6.5.tar.gz
$ cd gnuplot-4.6.5
$ ./configure
$ make
Si vous n'avez les droits root sur la machine
(c'est le cas si vous êtes sur une machine des salles), vous ne pourrez pas l'installer,
et il faudra spécifier au benchmark d'utiliser votre gnuplot compilé dans ~/src/gnuplot-4.6.5/src
.
Pour cela, faites
$ PATH=</path/to/gnuplot-4.6.5>/src:${PATH} ./bootstrap.sh
à la place de ./bootstrap.sh
dans le dossier benchmark (le chemin vers gnuplot doit être un chemin absolu (qui commence par /
)).
Si vous avez les droits root, faites simplement
$ sudo make install
dans le dossier gnuplot.
Si vous avez l'erreur "required file ./ltmain.sh
" en faisant ./configure
ou ./bootstrap.sh
,
assurez vous que votre dossier gnuplot-4.6.5
n'est pas dans benchmark
et vice versa.