Hallo zusammen
Einführung:
Ich stand in regem Mailkontakt mit Michael Schroepl,
der mich auch darauf Hingewiesen hat, dass auf
SourceForge der Quelltext des Forums downloadbar ist.
Ich habe den Quelltext kurz überflogen und folgendes
festgestellt:
Feststellung:
Bei jedem Pageview des Viewers (fo_view.pl) wird der
gesamte Forumsinhalt neu durch den XML-Parser
geschickt. Da Michael sehr oft das
Stichwort "Serverperformance" erwähnt hat, ist mir
dies ("negativ") Aufgefallen.
Verbesserungsvorschlag:
Der Forumscontent ändert nicht bei jedem fo_view.pl-
Zugriff! - sondern durch das Hinzufügen/Beantworten
eines Postings, also fo_posting.pl . Nun, wäre es doch
klüger, wenn man den Forumscontent nur aktalisiert,
wenn ein neues Posting gepostet wurde?
Realisierung:
Mit einfachen Worten gesagt, wird der gesamte
Quelltext von fo_view.pl an fo_posting.pl angehängt.
Jedoch die Ausgabe wird in eine .html Datei
umgeleitet, welche den aktuellen Forumscontent
enthält. Das Programm fo_view.pl dient nur noch dazu,
einen redirect zur .html Datei zu generieren, also:
print "Content-type:
text/html\nLocation:/forum_content.html\n\n";
Problem:
Bei dem gleichzeitigen Zugriff auf fo_view.pl und
fo_posting.pl wird wohl eine Fehlermeldung zu erwarten
sein (Michael hat mich darauf aufmerksam gemacht), da
forum_content.html zur gleichen Zeit geändert wird.
Lösung: Es gibt immer zwei identische Versionen von
forum_content[1/2].html, die eine wird aktualisiert,
die andere von fo_view.pl redirected. Gesteuert werden
kann dies durch:
open(F, ">forum_content.html") or open
(F, ">forum_content2.html");
mit anschliessendem Timeout für die Synchronisation
der ersten forum_content - Datei.
Viele Grüsse
Philipp
PS: Anfällige Rückmeldungen bitte an cto@entryon.ch
oder philipp.hasenfratz@entryon.ch, oder
entsprechender Hinweis, dass sich hier eine Antwort
befindet. Und Entschuldigung für den langen Feature
Request.
Logged In: YES
user_id=157943
Moin,
> Bei jedem Pageview des Viewers (fo_view.pl) wird der
> gesamte Forumsinhalt neu durch den XML-Parser
> geschickt. Da Michael sehr oft das
> Stichwort "Serverperformance" erwhnt hat, ist mir
> dies ("negativ") Aufgefallen.
Der viewer ist sowohl fuer die Hauptdatei, als auch fuer die Postinganzeige zustaendig.
Ich weiss zwar nicht genau, auf welche Anzeige du dich beziehst, macht aber nichts, denn...
> Der Forumscontent ndert nicht bei jedem fo_view.pl-
> Zugriff!
das stimmt, aber:
Das, was an den Browser geschickt wird, aendert sich mit jedem Zugriff.
Bei der Hauptdatei beispielsweise der Ladezeitpunkt.
Bei der Postinganzeige die unique-ID.
Ausserdem sind veraenderbare Anzeigemoeglichkeiten geplant, damit wuerde man wieder auf jeden Fall auf eine
dynamische Anzeige zurueckfallen muessen.
Insofern sehe ich keinen Sinn darin, die Ausgabe statisch zwischenzuspeichern.
> [...]
> print "Content-type:
> text/html\nLocation:/forum_content.html\n\n";
aeusserst unelegant, finde ich.
> Problem:
Das eruebrigt sich wohl damit ;-)
--
Nicht, damit es noch heisst, hier macht sich gar keiner einen Kopf um Performance...
Es sind durchaus Schritte geplant (und zwar in absehbarer Zeit), moeglichst oft auf den (langsamen) XML-Parser
zu verzichten und die Daten in einem alternativen Format zu cachen. Das Grundformat wird jedoch weiterhin XML
bleiben.
Ein Grossteil der Performance haengt uebrigens auch an der (XML-)Konfiguration und an den Templates. Beide
sind derzeit ebenfalls in Ueberarbeitung.
Andr Malo