mageekblog - Mot-clé - ruby-ixpLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearwmiirc.php VS wmiir VS ruby-ixpurn:md5:cdb35a6d541c548724855fac256f41fd2009-01-28T14:00:00+01:002009-01-28T16:22:09+01:00mageekguyPHPPHPRubyruby-ixpwmiiwmiirc.php<p>Afin d'avoir une idée approximative des performances du <a href="http://svn.mageekbox.net/repositories/wmiirc.php/trunk/classes/wmii9PlanClient.php">client 9Plan</a> de <a href="http://svn.mageekbox.net/repositories/wmiirc.php/trunk">wmiirc.php</a>, j'ai effectué un comparatif avec <code>wmiir</code>, l'utilitaire permettant d'accèder au sytème de fichiers 9Plan de <a href="http://www.suckless.org/wmii/">wmii</a>.</p>
<p>Pour ce faire, j'ai utilisé deux scripts :</p>
<ol>
<li>L'un est en <a href="http://www.gnu.org/software/bash/">bash</a> et utilise <code>wmiir</code>.</li>
<li>L'autre est en <a href="http://www.php.net">PHP</a> et fait appel au <a href="http://svn.mageekbox.net/repositories/wmiirc.php/trunk/classes/wmii9PlanClient.php">client 9Plan</a> de <a href="http://svn.mageekbox.net/repositories/wmiirc.php/trunk">wmiirc.php</a>.</li>
</ol>
<p>Ces deux scripts ont le même but (stupide) : Lire 1000 fois le fichier <code>/ctl</code> de <a href="http://www.suckless.org/wmii/">wmii</a>.</p> <p>Le script en bash est le suivant :</p>
<pre><code>#!/usr/local/bin/bash<br />for i in {1..1000}; do<br /> wmiir read /ctl > /dev/null;<br />done<br /></code></pre>
<p>Le script en <a href="http://www.php.net">PHP</a> est le suivant :</p>
<pre><code>#!/usr/bin/env -S php -n<br />connect();<br /><br />$file = new wmii9PlanFile('/ctl');<br /><br />for ($i = 0; $i < 1000; $i++)<br />{<br /> $interface->read($file);<br />}<br /><br />?></code></pre>
<p>Une fois ces deux scripts écrits, il suffit d'éxécuter les commandes suivantes pour avoir une idée du temps d'éxécution :</p>
<pre><code># sudo chmod u+x ./test.php ./test.sh<br /># time ./test.php<br /># time ./test.sh<br /></code></pre>
<p>Les résultats montrent que le code <a href="http://www.php.net">PHP</a> est approximativement 4.3 fois plus rapide que <code>wmiir</code>, codé en C.</p>
<p>Par curiosité, j'ai comparé mes résultats avec ceux de <a href="http://home.gna.org/rubyixp/">ruby-ixp</a>, une classe écrite en <a href="http://www.ruby-lang.org/en/">ruby</a> qui permet également d'accèder à un serveur de fichiers 9Plan.</p>
<p>Il en ressort que cette dernière est 1.8 fois plus rapide que <code>wmiir</code>.</p>
<p>De là à dire que le code de <a href="http://svn.mageekbox.net/repositories/wmiirc.php/trunk">wmiirc.php</a> est 2 fois plus rapide que celui de <a href="http://home.gna.org/rubyixp/">ruby-ixp</a>, il y a un pas que je me garderais personnellement de franchir puisque le test de <a href="http://home.gna.org/rubyixp/">ruby-ixp</a> a apparament été effectué :</p>
<ul>
<li>avec une ancienne version de la classe.</li>
<li>avec un ancienne version de <a href="http://www.ruby-lang.org/en/">ruby</a>.</li>
<li>avec une ancienne version de <a href="http://www.suckless.org/wmii/">wmii</a>.</li>
</ul>
<p>Cependant, je suis certain que <del>des trolleurs</del> certain pourfendeurs de <a href="http://www.ruby-lang.org/en/">ruby</a>, adorateurs de<a href="http://www.php.net">PHP</a>, sauront en tirer parti...</p>
<p>Pour information, j'ai effectué mon test sur un portable core2duo à 1.5 Ghz sous <a href="http://www.freebsd.org">FreeBSD 7.1</a> et wmii 3.6, avec <a href="http://www.php.net">PHP</a> 5.2.8 et le Suhosin-Patch 0.9.6.3.</p>http://blog.mageekbox.net/?post/2009/01/28/wmiirc.php-VS-wmiir-vs-ruby-ixp#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/19