Zend langsamer als Amfphp?

FreakyFoX

Grünschnabel
Hi Leute,

ich habe eine Flexanwendung, die über PHP (PHP Version 5.2.6-1+lenny6) mit einer MySql-Datenbank kommuniziert. Bisher habe ich Amfphp verwendet und wollte dies nun auf das Zend-Framework umstellen, da Adobe und Zend zusammenarbeiten. Dabei ist mir folgendes Problem aufgefallen: Das Zend-Framework ist bei identischen Abfragen bis zu 4 mal langsamer. Beide Anwendeungen laufen auf dem selben Server, greifen auf die selbe Datenbank zu und mir fallen auch sonst keine Unterschiede ein.

Folgende Abfrage wurde über beide Frameworks gesendet und mit dem ServiceCapture ausgewertet:

PHP:
$mysql_con = mysql_connect( "*server*", "*user*", "*pass*" );
mysql_select_db( *db_name* );
        
$result = mysql_query( "SELECT * FROM Tabelle LIMIT 1000;" );
        
$values = array();
        
while( $rValue = mysql_fetch_assoc( $result ))
{
      array_push( $values, $rValue );
}

return $values;

Code:
Amfphp bei 1000 Datensätzen (5 mal schneller):

Größe der Anfrage:	940 Bytes
Größe des Results:	135,4 KB
Dauer:			2,516 s

Amfphp bei 2000 Datensätzen (9 mal schneller):

Größe der Anfrage:	940 Bytes
Größe des Results:	275,29 KB
Dauer:			4,955 s

Zend Php bei 1000 Datensätzen:

Größe der Anfrage:	913 Bytes
Größe des Results:	133,98 KB
Dauer:			12,38 s

Zend Php bei 2000 Datensätzen:

Größe der Anfrage:	913 Bytes
Größe des Results:	272,05 KB
Dauer:			44,376 s

Wie kann es nun sein, dass der Zend-Service bei einer 100%ig identischen Anfrage 6 mal länger dauert? Kann es eventuell an der Php-Version liegen?

Ich hoffe ihr könnt mir weiterhelfen. Schonmal vielen Dank im Voraus.

Gruß Dennis
 
PHP ist komisch,

bei meinen Tests mit "serialize" war PHP um vieles schneller als mit "pack", möglicherweise ist PHP nicht der Hit bei pure Binäry-Ops ^^
 
Da das Problem bei mir nun wieder aktuell ist, habe ich weiter geforscht ... und ich habe die Lösung gefunden. Also für alle, die es interessiert:

http://framework.zend.com/issues/browse/ZF-7493

Es handelt sich um ein enormes Performanceproblem beim Serializieren. Der Bugfix ist im Moment noch nicht im ZF implementiert, kann aber ganz einfach selbst gemacht werden (siehe Link).

Damit wäre das Thema erledigt (!)
 
Zurück