Thread Objekt löschen
(25 answers)
Opened by Froschpopo at 2007-11-12 05:38 Struppi+2007-11-14 11:36:37-- Ich würde nicht *generell* davon abraten, aber bei mod_perl sollte man ganz genau wissen was man tut. Einem Einsteiger würde ich nicht unbedingt zu mod_perl raten. Da kann man ganz schnell in fiese Fallen tappen! Quote Ja, es ist ein Vorteil dass nicht alles neu geladen werden muss. Objekte sollten dennoch nicht global sein. Ich hatte bei einem Kunden das "Problem", dass ein einziges Modul nicht "sauber" implementiert war (Objekt war global) und dadurch Fehler bei einem User erzeugt wurden, die eigentlich von einem anderen User verursacht wurden. Es sind zwar seltene Fälle (je nach Konfig des Webservers), aber stell Dir mal eine Shopanwendung, in der Kundendaten (Kreditkartennummer,etc) in einem globalen Objekt gespeichert werden. Dann kann es passieren, dass ein User Deine Daten sieht, weil er gerade den Prozess bekommt, in dem Deine Daten in einem globalen Objekt gespeichert sind... Quote Vorsicht vor zirkulären Referenzen! Die können bei mod_perl ganz schnell mal Memory Leaks hervorrufen... Bei einem CGI-Skript (bei jedem Request alles neu laden und ausführen) wird am Ende des Skripts alles aufgeräumt. Bei mod_perl nicht unbedingt, da ja der ApacheChild weiterlebt... Nur weil der Gültigkeitsbereich von $self verlassen wird, heißt das nicht, dass alles dahinter "zerstört" wird. Es kann ja sein, dass noch andere Variablen eine Referenz auf die Daten von $self haben - und wenn die "global" sind, dann ist das nicht vorteilhaft. Quote Es hat keiner behauptet, dass das Löschen von Objekten etwas beschleunigt, aber es *kann* durchaus Sinn machen, das Objekt selbst zu "zerstören" und somit den Speicher (intern) freizugeben (wenn keine anderen Referenzen auf die Daten vorhanden sind). Zum einen kann man so zirkuläre Referenzen zerstören und zum anderen kann man extrem hohen Speicherverbrauch vermeiden. OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |