Andreas Bierhals: CGI-Performance?

Hallo!

Ich habe eine Frage zum Thema - Performance von lokal laufenden CGI-Skripten. Zum
Austesten meiner Skripte benutze ich Netscape 4.06 und als Webserver
lokal die Freeware von Xitami. Bei den Skripten handelt es sich um ein spezielles
Eingabeformat fuer ein C++-Programm. Dabei faellt auf, dass die Skripte
(im wesentlichen bestehend aus Berechnungsroutinen und Eingabeformularen)
sehr viel langsamer laufen, wenn sie via CGI-Schnittstelle gestartet werden,
als wenn man sie mit gleichwertigem Datenballast von der Kommandozeile aus
startet.

Meine derzeitige Theorie hierzu: Netscape versucht, auch
unvollstaendig geladene Seiten so weit wie moeglich darzustellen. Dadurch
wird dem Skript Rechenzeit entzogen.
Die Verzoegerung kann hierbei durchaus Faktor 3 bis 5 betragen
(also Antwortzeiten von 2-3 Sekunden anstatt <1 Sek.).

Weiss jemand darueber Genaueres?

Viele Gruesse

Andreas Bierhals

  1. Hallo Andreas,
    erstmal ist Deine Umgebung ja nicht sonderlich wirklichkeitsnah. Wenn sowohl der HTTP-Server als auch der Browser auf der selben Maschine laufen, ist die reale Performance sicher nicht leicht abzuschätzen. Du darfst nicht vergessen, daß beide Prozesse quasi gleichzeitig arbeiten müssen.

    Aber erst mal zum Netscape. Meine eigenen Beobachtungen zeigen, daß vor allem beim Darstellen größerer Tabellen, die aus einem Script heraus generiert werden, der Browser den Performance-Verlust verursacht. Wird die Datenmenge in kleinere Tabellen unterteilt erhöht sich die Geschwindigkeit. Das war übrigens auch beim MSIE zu beobachten.

    Gelöst haben wir unser Problem durch eine andere Art der Ausgabe. Der Benutzer erhält nicht die ganze Liste sondern immer nur eine kleine, auf einer Seite darstellbare Menge, und eine Navigationsleiste mit der er sich durch die Liste klicken kann. Der Vorteil: Schon nach sehr kurzer Zeit wird Information angezeigt und es muß nicht immer die gesamte Datenmenge übertragen werden.

    Zurück zu Deinem Problem mit dem Faktor 3-5. Ich würde erst einmal in realer Umgebung (Server und Client getrennt) ausprobieren, was davon noch übrigbleibt.

    Roland

    1. Hallo Roland,

      erstmal vielen Dank fuer die Antwort. Auch ich hatte zwischenzeitlich Netscape in Verdacht, da die Skripte auf dem lokalen System signifikant schneller liefen, wenn man stattdessen z.B. den IE3 verwendete (der hatte jedoch das Problem, dass die Systemressourcen unwiederruflich verloren gingen...).

      Auf einer getrennten Client/Server (Pentium 200)-Umgebung ist die Performance wie gesagt ok. Es ist halt nur schade, wenn man das System lokal z.B. zur Vorfuehrung laufen laesst und die Eingabemasken im Schneckentempo erscheinen. Mir schwebt vor, dass man irgendwie den Browser und den Server dazu bringen sollte, abwechselnd und nicht gleichzeitig zu laufen (evtl. mit Zwischencache fuer die Ausgabe), habe aber noch keine konkrete Idee.

      Viele Gruesse!

      Andreas