josedasilva @ 11:09

Qui, 13/10/05

Hoje foi mais um dia de uma ida ao laboratório pessoal, desta feita decidi testar a eficiência do sistema de output buffering do php, e já que estava com as mão na massa testei também a compressão da página, para browsers que o permitem.

Usei o seguinte script para o buffering:


< ?php
// Benchamarking the script
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$time = getmicrotime();

function compress_output($output)
{
// We can perform additional manipulation on $output here, such
// as stripping whitespace, etc.
return gzencode(trim($output));
}

// Check if the browser supports gzip encoding, HTTP_ACCEPT_ENCODING
if (strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip')) {
// Start output buffering, and register compress_output() (see
// below)
ob_start("compress_output");

// Tell the browser the content is compressed with gzip
header("Content-Encoding: gzip");
}

for($i=0;$i<50000;$i++)
print $i;

echo "

Time elapsed: ",getmicrotime() - $time, " seconds";
?>


E o memso script sem output buffering nem compressão.


< ?php
// Benchamarking the script
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$time = getmicrotime();

for($i=0;$i<50000;$i++)
print $i;

echo "

Time elapsed: ",getmicrotime() - $time, " seconds";

?>


Os resultados falam por si, pode testar o script com buffering e o outro menos eficiente em termos de velocidade, sem buffering.

ALguma partes do código usado neste script de exemplo foi retirado da Zend

Mais detalhes » http://www.zend.com/zend/art/buffering.php.


Tags:

Blog pessoal de José Silva. Sou programador informático, nos últimos anos dedicado quase exclusivamente ao PHP.
Outubro 2005
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1

2
3
4
5
6
7
8

9
10
14
15

16
19
20
21
22

23
24
25
26
27
29

31


Pesquisar
 
blogs SAPO