Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
So, ich hab grade mal Zeit gefunden ein wenig herumzuspielen. Nur ein grober Test...
Wer Fehler beim Setup, bei der Logik oder sonstwo entdeckt, bitte melden.
Verwendete Hardware:
#1 G4, 733 MHz, 768 MB, OS X 10.2.4
#2 G4, 733 MHz, 768 MB, OS X 10.2.4
#3 PC, Pentium 3, 733 MHz, 256 MB, Windows 2000 sp4
#4 PC, Pentium 3, 1 GHz, 1 GB, Windows 2000 sp4
Der Webserver läuft auf Maschine #1, Webstar in der aktuellen Version, php, 4.1.2, Lasso 6.
Auf #4 läuft Filemaker 5.5 Server mit 77 Datenbanken die zusammen ca. 450 MB aufweisen.
Benutzt wurde eine sehr kleine Datenbank mit 10 Feldern und 33 Datensätzen. Abgefragt wurde in allen Fällen ein einzelnes Feld mit Zahl die in den
Datensätzen nur einmal vorkommt.
Die Datenbank wurde in einem Filemaker Unlimited 5.5 geöffnet der auf der Selben Maschine wie der Webserver und Lasso läuft.
Es wurden keine Variablen übergeben sonder nur eine reine Abfrage an die Datenbank gestellt.
Erst wird ein Timer initialisiert, dann die Abfrage gestellt welche 10 mal wiederholt wird.
Anschliessen wird der Timer ausgewertet und ausgegeben.
var: 'timer'=(integer: _date_msec);
Loop: 10;
Inline: -InlineName='schoepe_log',
-Search, -Database='test_db', -Table='web',
-Operator='eq', 'id'='44';
/Inline;
/Loop;
Var: 'dauer' = (integer: _date_msec) - $timer;
output: $dauer;
Die Zeiten für die 10 Abfragen betrugen dabei im Schnitt 3.8 Sek bis 4.0 Sek
Eine Auslagerung des Filemaker-Clients auf #2 brachte keinen Geschwindigkeitsunterschied (vermutlich bei mehr Last und mehr Datenbanken...)
Die Datenbank dann auf #3, dem PC gehostet drückte die Zeit auf ca. die Hälfte, also die 10 Abfragen in knapp 2 Sekunden.
Das gleiche Spielchen habe ich nun mit mit fx.php gemacht. Zur Zeitmessung hab ich die PEAR-Klasse PEAR::Benchmark genutzt.
$misc_fm = array();
$serverIP = "localhost";
$miscQuery = new FX($serverIP);
$miscQuery->SetDBData("test_db.fp5", "web");
$miscQuery->AddDBParam("id", "44");
$miscData = $miscQuery->FMFind();
Beim Hosting der Datenbank auf dem Webserver #1 selber, dabei waren die Zeiten zwischen 4.2 und 9 Sekunden, stark schwankend.
Interessant war dann allerdings das Hosting auf #2, hierbei waren die Zeiten relativ konstant im Bereich von 3 bis 3.4 Sekunden.
Bei Nummer #3 waren die Zeiten weiterhin bei ca. 2 Sekunden, hin und wieder gab es aber Ausreißer in den Bereich um 9 Sekunden, ich glaub den Rechner
sollte ich mal überprüfen...
Nachdem ich dann noch einen Kleinen Test lokal (Webserver und Filemaker) auf dem Notebook (Pentium M, 1300 MHz, 512 MB, Windows XP) mit Apache und
fx.php durchgeführt hab und auf Zeiten von 0.4 Sekunden bei allen Beteiligten ausser #3 kam (abgeschlagen mit weiterhin 2 Sek., vermutlich stimmt hier
was nicht) werde ich bei Gelegenheit mal die php-Version auf #1 aktualisieren, mal sehen was dabei herauskommt. Die Datenbank in MySQL braucht
(ebenfalls lokal auf dem Notebook) übrigens nur 0.070 Sekunden für die 10 Abfragen.
Demnach würde ich hier sagen Webstar mit fx.php hat bei der reinen Abfrage etwas bessere Performance.
Mal sehen ob ich das bei Gelegenheit und Interesse etwas verfeinern und um den Apache erweitern kann.
Marc