PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gzip-encoded output - Performance-Fragen



Xerxes
17-11-2002, 14:02
Wenn man eine Webseite gzip-komprimiert ausgeben will, muss deren Inhalt ja an einer Stelle komprimiert werden; dies geschiet bekannter Maßen mit der Funktion gzcompress( $contents, $level ).
Jetzt gibt es aber zwei Möglichkeiten:
a) Man gibt der Funktion immer den Wert 9 für maximale Komprimierung mit auf den Weg, damti die Seiten immer so klein wie möglich werden und möglichst wenig Traffic verbrauchen.
b) Man übergibt je nach CPU-Auslastung einen unterschiedlich hohen Wert. Das hat den Vorteil, dass eine ausgelastete CPU nicht noch zusätzlich Power verbraucht um einen Seite mit Level 9 zu komprimieren.
Die CPU-Auslastung kann man entweder mit folgender Funktion

function linux_loadavg()
{
$buffer = '0 0 0';
$f = fopen( '/proc/loadavg', 'r' );
if( !feof( $f ) )
{
$buffer = fgets($f, 1024);
}
fclose( $f );
$load = explode( ' ', $buffer );
return max( (float)$load[0], (float)$load[1], (float)$load[2] );
}
oder durch mit folgendem Script

if ($uptime=@exec('uptime'))

{

preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/',$uptime,$val);

echo "Serverlast: $val[1]  $val[2]  $val[3]";

}
feststellen.

FRAGE: Beanspruchen beide Methoden den Prozessor nicht mehr, als wenn man eine Seite standardmäßig mit Level 9 komprimiert? Besonders bei vielen Seitenaufrufen sind Datei-Operationen doch recht langsam und ich bezweifle, dass das ständige aufrufen von 'uptime' den prozessor nicht irgendwann nervt....

jwebworks
17-11-2002, 20:54
Hi,

ich gehe mal davon aus, dass das auf
die Größe, der zu komprimierenden Datei
ankommt.

Hat jemand Erfahrung, wie gross der
Unterschied zwischen dem Komprimieren
mit Stufe 5 und 9 aus Sicht der sich ergebenden
Größe ist?

Die CPU-Last ist sicher höher.

cu, stop.h

netzmeister
17-11-2002, 21:22
Hallo,

ich mache sehr viel mit gezippeten Seiten.

Besonders die dynamischen Seiten profitieren davon. Der Unterschied ist im
"oberen" Bereich nur noch minimal.

Auf http://leknor.com/code/gziped.php findet Ihr Beispiele dazu.
Auch eine Testmöglichkeit ist dort vorhanden.

Ihr könnt ja mal http://leknor.com/code/gziped.php?url=http%3A%2F%2Fmrunix.de%2Fforums%2Fi ndex.php auf "zip" testen.

Viele Grüße

Eicke

p.s. Ein schneller Rechner, am besten Mehrprozessor sollte es dann bei
vielen gleichzeitigen Verbindungen schon sein. So wie wir das eben hier
auch machen :cool:

Xerxes
18-11-2002, 12:54
Ich hab mir grad von jemand anderem sagen lassen, dass man auf keinen Fall Level 9 nehmen soll. Verursacht extrem mehr Prozessorlast ohne wirklich was zu bringen. Und wenn ich mir die Tabelle auf leknor.com anschaue, scheint das auch zu stimmen.

netzmeister
18-11-2002, 13:03
Hallo Xerxes,

ich habe auf den stark besuchten Seiten zwischen Level 1-3 im Einsatz,
auf den wenig besuchten Level 3-5.

Damit habe ich gute Erfahrungen gemacht.

Viele Grüße

Eicke

Xerxes
18-11-2002, 13:09
ich hab alles auf 1 runter gedreht. gibt ja schließlich noch andere hostings bei gamesurf. ;)
aber 9 wäre auch wirklich zu viel.....
...und dann erübrigt sich auch die sache mit dem prüfen der aktuellen prozessorlast. :)

wenn ihr mögt, könnt ihr euch ja mal meine gzip-klasse zu gemüte führen. vielleicht habt ihr ja noch ideen für verbesserungen. (verschiedene sachen, wie z.b. die prüfung nach der php-version hab ich mit absicht weg gelassen. ich wollte die klasse so klein wie möglich halten ;) )