Roadsend PHP Compiler

Tags:: php :: compiler :: bench

Tien pendant que je suis encore là, j'ai testé le compilateur PHP Roadsend. En gros, Roadsend permet de compiler un code PHP en binaire natif. Je voulais voir si on pouvait gagner vraiment du temps en exécution, ou si c'était un peu de la fumisterie. Et bien j'ai été surpris ! J'ai compilé PHP Roadsend avec le support PCRE pour le fun (par contre j'ai eut des soucis avec PDO, je verrai ça plus tard). Bref voici un bout de code que je compile:


<?
$pDest = "https://toto";

//change this
$iter = 1500000;

$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;

for ($i=0;$i<$iter;$i++){
    if (preg_match(';^((http(s)?://)|(ftp(s)?://));',$pDest)){
        //echo "ok 2
";
    }
}
$mtime = microtime();
$mtime = explode("
",$mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);
echo "
".$totaltime." seconds";
echo "

";
?>
 

Et voici la ligne qui compile, puis éxécute le binaire. Notez les temps exécutés...


[patachou@localhost roadsend-php-2.9.5]$ pcc montest2.php
[patachou@localhost roadsend-php-2.9.5]$ ./montest2
1.55335593224 seconds
[patachou@localhost roadsend-php-2.9.5]$ php ./montest2.php
6.9388689994812 seconds
 

Et oui, 1.5 secondes contre près de 7 secondes en PHP... 1500000 d'itérations donne un bon résultat de bench (avec regexp en plus...).

Bref, regardons juste le poids:


18K montest2
477 montest2.php
 

Normal... Je vérifie un petit truc en passant:


[patachou@localhost roadsend-php-2.9.5]$ ldd montest
        linux-vdso.so.1 =>  (0x00007fffa59fe000)
        libphp-runtime_u-3.0b.so => /usr/local/lib/libphp-runtime_u-3.0b.so (0x00002aaaaaaad000)
        libprofiler_u-3.0b.so => /usr/local/lib/libprofiler_u-3.0b.so (0x00002aaaaae61000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003da1200000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003da0e00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003da0a00000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003d9f800000)
 

Cela dit, pour que le script "montest2.php" puisse marcher, il faut php d'installé... alors que pour le binaire, je ne fourni que les ".so" sous linux ou les ".dll" sous windows.

Alors évidamment, on ne va pas faire des applications web mais plutôt des programmes clients lourds. En fait, PHP Roadsend permet de coder en PHP ce que vous ne voulez pas coder en C/C++ (héhé). Sachez que vous pourrez utiliser glade/GTK pour faire des applications fenêtrée.

Je ne sais pas ce que ça vaut, mais je m'y pencherai bien un de ces 4. A noter donc !

Utilisez le code barre pour ouvrir le ticket dans votre mobile:
This ticket on you mobile

Pas de commentaire pour le moment

Ajouter un commentaire
Veuillez répondre à la question suivante : Taper "geek" sans les guillemets

Trackbacks

Pour ajouter un trackback (retrolien) sur ce ticket, utilisez cette adresse: http://www.metal3d.org/index.php/trackback/default/tb?id=blog%2F56

Tags

Blog Copix Communication PC Config Fedora Vidéo Humour Autre Web Materiel Informatique PHP Développement Mootools HTML Linux WEB IE CSS Vista Microsoft Sympa XHTML Quizz Widget Klik CWE Voeux Bonne année Musique CCRMA Son Audio MAO Reconnaissance vocale Windows Mac Compiz MacOS Mysql Sun Base de données BD Screenlets Screenlet RPM compiz Ubuntu Live FireFox Derambarsh Facebook media informations Sécurité javascript SSH Commande Marketing concours ipod wii QT Trooltech Nokia Libre Logiciels GPL Attali Gnome Dock Compiler Bench undelete reiserfs recovery recover Thread Serveur Optimisation Server Apache Album RSS Flash Air XML Firefox Blender Opensource Orange Internet LiveBox Animaux Droits Logiciels Libres Google Loi RBS netcat Bash Téléphone Spam 3D NIDIA Standards Widgets Merise UML Streaming Developpement Perl MySQL Firewall Parfeu Bayes Novell Réseau Python LVS Salon FTP Dedibox Chrome Administration IRC Gentoo troll video Nouveauté Finance Etudiant spéctacle OpenOffice Javascript Java Info Eclpise ATI design mootools KDE Bureau Design GNU C Pages Jaunes Fun Bijoux Art mail Admin vmware fedora linux VirtualBox VMWare Qemu KVM vim Grep Fglrx Webkit GTK google web JQuery Coup de gueule coup de gueule Lois SVG Raycaster Canvas Hadopi Desktop Jeux Les Sims développement astuces Screen firefox Mobile Safaru Wine bash commande astuce Wave ooc C++ C# Netbook Hercules Bureautique Twitter Safari W3C chrome kazehakaze midori navigateur gecko webkit Links Liens Pyhon Nouvelles Metal Perso Conférence JDLL PCC Roadsend OOC News Acteur Cinéma Chanteur Seven windows orthographe pcc php jdll Slide Application mysql Html twitter python screen curses SVN Android Gphone iPhone OpenGL MindMap Projet Javascrtip Ajax Guitare Tab Tablature JSON firebug Chromium Iphone Titanium music sound android ogg ogv streaming Arkyne svn subversion gnome VLC Tv encoder ffmpeg Cryptage apple microsoft HTML5 Max Apple code youtube quvi git uzbl webgl chromium

  Catalogue professionnel de musique libre


  • twitter entries...
follow me on Twitter

Valid XHTML 1.0 Strict

tumblr visitor