Hace algunos años, intenté este benchmark y, para mi sorpresa, perl devastó a PHP. La diferencia era 10x; a favor de perl.
La prueba consistió en pedirle a perl que escribiera, en un archivo, los números del 0 al 999,999.
Los scripts que utilicé fueron los siguientes:
perl:
#!/bin/perl
use warnings;
use strict;
open(my $fh, '>', 'test.pl.txt');
for (my $i = 0; $i < 1000000; $i++) {
syswrite($fh, "$i\n");
}
close $fh;
PHP:
<?php
$fp = fopen('test.php.txt', 'w');
for ($n= 0; $n < 1000000; $n++) {
fwrite($fp, "$n\n");
}
fclose($fp);
For the record, utilicé a mi querido Fedora 10; totalmente actualizado. Mi hardware es consultable aquí: http://www.smolts.org/client/show/pub_0b812fdc-5bf2-4fd5-a899-39f2d4539b1d
Para medir el desempeño, usé la utilería time.
El comando fue el siguiente; seguido de su output:
echo -e "\n== Perl Test ==" && time perl test.pl && echo -e "\n== PHP Test ==" && time php test.php
Perl Test
real 0m6.268s user 0m0.937s sys 0m5.312s
PHP Test
real 0m9.167s user 0m3.610s sys 0m5.538s
Admito que, es muy posible, que el código de PHP pueda ser optimizado; al igual que el código de perl. Si tienes sugerencias, te invito a comentarlas. Yo apoyo 100% a PHP!!
A ver, perleanos! Sugiéranme una manera más rápida de hacer esto!
PHPeros! Ayúdenme a mejorar el tiempo de PHP.