ho fatto qualche veloce test di prova, dando un minimo di configurata ai vari CMS che ho testato, ovvero Drupal, Joomla, e107 e Wordpress.
Drupal 6.12
6/7 mb per il frontend
fino a 10 mb per il backend
Wordpress 2.7.1
dai 9 ai 10 mb per il frontend
fino a 12 mb per il backend
e107 0.7.5
dai 1.5 ai 2.5 mb
Joomla 1.5.10
dai 5 ai 7 mb
dove non ho fatto distizione tra frontend e backend e perché i valori erano abbastanza simili.
Ovviamente il tutto è ESTREAMEMENTE indicativa perché anche se ho cercato di fare le configurazioni più simili possibile è stato comunque fatto tutto in mezz'ora!
Detto questo, sinceramente drupal mi ha scioccato, la release 6 ha fatto passi da gigante in termini di ottimizzazione, in quanto le precedenti release avevano bisogno minimo del doppio di memoria per l'esecuzione e da quanto ho potuto vedere la release 7 ne ha fatti ancora di più!
Ho testato anche e107, come potete vedere e, anche se ha consumi di memoria bassissimi, la flessibilità è pari a zero perché infatti non utilizza un sistema centralizzato con il caricamento dei componenti necessari bensì una serie di file php ben distinti cosa che porta a duplicazione del codice a gogo e poca flessibilità
Se avete voglia di vedere le vostre configurazioni quanto consumano (in termini di memoria/tempo) qui ci sono i file necessari!
Dentro l'htaccess va inserito
codice:
php_value auto_prepend_file "ABSOLUTE/PATH/TO/check-prepend.php"
php_value auto_append_file "ABSOLUTE/TO/check-append.php"
E' importante utilizzare percorsi assolute!!!
dopo di che i due file vanno piazzati nello stesso posto:
check-prepend.php
codice:
<?php
if (file_exists(dirname(__FILE__) . '/CHECK') === true)
{
$__startMemory = memory_get_peak_usage();
$__startMemoryReal = memory_get_peak_usage(true);
$__startTime = microtime(true);
}
?>
check-append.php
codice:
<?php
if (file_exists(dirname(__FILE__) . '/CHECK') === true)
{
$uri = 'http' . (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 's'
: '') . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != '80'
? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['REQUEST_URI'];
$fp = fopen(dirname(__FILE__) . '/check-result.txt', 'ab');
fwrite($fp, date('d/m/Y H:i:s') . "\r\n");
fwrite($fp, $uri . "\r\n");
fwrite($fp, sprintf('Memoria PHP: %0.6f', (memory_get_peak_usage() - $__startMemory) / 1024) . "\r\n");
fwrite($fp, sprintf('Memoria Reale: %0.6f', (memory_get_peak_usage(true) - $__startMemoryReal) / 1024) . "\r\n");
fwrite($fp, sprintf('Tempo di esecuzione: %0.6f', microtime(true) - $__startTime) . "\r\n");
fwrite($fp, "------\r\n");
fwrite($fp, "\r\n");
fclose($fp);
}
?>
fatto questo insieme ai due file va creato un terzo file vuoto, senza estensione, chiamato CHECK che serve ad indicare ai due script di effettuare o meno i test
Verrà creato un file check-result.txt con dentro i dati, ovvero la path richiesta ed il consumo di memoria di php/reale (ha più importanza il secondo rispetto al primo) ed il tempo di esecuzione