Le script en bash est le suivant :

#!/usr/local/bin/bash
for i in {1..1000}; do
wmiir read /ctl > /dev/null;
done

Le script en PHP est le suivant :

#!/usr/bin/env -S php -n
connect();

$file = new wmii9PlanFile('/ctl');

for ($i = 0; $i < 1000; $i++)
{
$interface->read($file);
}

?>

Une fois ces deux scripts écrits, il suffit d'éxécuter les commandes suivantes pour avoir une idée du temps d'éxécution :

# sudo chmod u+x ./test.php ./test.sh
# time ./test.php
# time ./test.sh

Les résultats montrent que le code PHP est approximativement 4.3 fois plus rapide que wmiir, codé en C.

Par curiosité, j'ai comparé mes résultats avec ceux de ruby-ixp, une classe écrite en ruby qui permet également d'accèder à un serveur de fichiers 9Plan.

Il en ressort que cette dernière est 1.8 fois plus rapide que wmiir.

De là à dire que le code de wmiirc.php est 2 fois plus rapide que celui de ruby-ixp, il y a un pas que je me garderais personnellement de franchir puisque le test de ruby-ixp a apparament été effectué :

  • avec une ancienne version de la classe.
  • avec un ancienne version de ruby.
  • avec une ancienne version de wmii.

Cependant, je suis certain que des trolleurs certain pourfendeurs de ruby, adorateurs dePHP, sauront en tirer parti...

Pour information, j'ai effectué mon test sur un portable core2duo à 1.5 Ghz sous FreeBSD 7.1 et wmii 3.6, avec PHP 5.2.8 et le Suhosin-Patch 0.9.6.3.