Schrift
[thread]6373[/thread]

speicher freigeben (Seite 2)

Leser: 2


<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
Gast Gast
 2004-07-02 18:41
#83809 #83809
[quote=ptk,02.07.2004, 16:16]Auf jeden Fall muss man auf zirkulaere Referenzen achten, da diese vom reference counting system nicht automatisch aufgeloest werden koennen. Wenn du weisst, dass du eine zirkulaere Referenz erzeugst, solltest du eine der beiden Referenzen mit Scalar::Util::weaken bearbeiten.

Ein Tool zum Aufspueren von Memory Leaks ist Devel::Peek (benoetigt in der Regel das Neuuebersetzen von Perl). Damit kann man nachzaehlen lassen, wie viele Skalare Perl zwischen verschiedenen Checkpoints verbraucht.

Ansonsten hat man die gleichen Probleme wie beim Verwenden von malloc() bei C: wenn man grosse Speicherbloecke alloziert, werden diese nach einem free() unter Umstaenden nicht an das Betriebssystem zurueckgegeben. In diesem Fall waere es besser, die speicherfressende Funktion in einen eigenen Prozess zu verlagern.[/quote]
Zirkuläre Referenzen lassen sich (auch ohne den Einsatz von zusätzlichen, speicherfressenden Modulen) per schlichtem Perl-Code aufbrechen - das also sollte nicht das Problem sein.
ptk
 2004-07-02 20:29
#83810 #83810
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Dieter,02.07.2004, 16:41]Zirkuläre Referenzen lassen sich (auch ohne den Einsatz von zusätzlichen, speicherfressenden Modulen) per schlichtem Perl-Code aufbrechen - das also sollte nicht das Problem sein.[/quote]
Wie?
Gast Gast
 2004-07-02 20:47
#83811 #83811
[quote=ptk,02.07.2004, 18:29][quote=Dieter,02.07.2004, 16:41]Zirkuläre Referenzen lassen sich (auch ohne den Einsatz von zusätzlichen, speicherfressenden Modulen) per schlichtem Perl-Code aufbrechen - das also sollte nicht das Problem sein.[/quote]
Wie?[/quote]
Siehe Perl-Kochbuch Seite 498 (und mach jetzt endlich Schluß mit dem Mist - ignoriere mich einfach)
[E|B]
 2004-07-02 20:54
#83812 #83812
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@Dieter

Nur ruhig, er wollte doch nur wissen, WIE es geht. War doch keine böse Absicht! :)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
renee
 2004-07-02 20:55
#83813 #83813
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Dieter: Da war jetzt wirklich nix böses dabei - was ptk gemacht hat. Ich wüsste (bzw. weiß) es auch nicht und habe das Perl-Kochbuch nicht zur Hand.

Wäre vielleicht ganz nett, wenn Du das näher ausführen könntest, was da beschrieben ist.
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/
Ronnie
 2004-07-02 21:31
#83814 #83814
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Prinzipiell geht es darum das man das ganze als Objekt realisiert, für das man einen DESTRUKTOR programmiert. Das Auflösen der zirkulären Referenzen wird dann über einen Dummy-Knoten realisiert. Dann wird anscheinend der Ring aufgebrochen und die Referenzen der einzelnen Knoten zu einander aufgelöst. Ich verstehe es im Moment nicht ganz, aber die Investition in das Perl-Kochbuch ist durchaus empfehlenswert.\n\n

<!--EDIT|Ronnie|1088789549-->
Strat
 2004-07-03 00:49
#83815 #83815
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
manchmal macht es sinn, in einem Service/Daemon so wenig wie moeglich an funktionalitaet zu coden, und den Rest dann in externe programme auszulagern, die bei bedarf ausgefuehrt werden... z.B. ein daemon, der eine logdatei beobachtet und auf bestimmte darin vorkommende events dann zahlreiche verschiedene aktionen starten muss, die eventuell auch laenger dauern koennen...

btw: wenn du groessere listen oder hashes verwendest, kann ein vordimensionieren die speicherfragmentierung vermindern, z.B. $#array = 400000... und eventuell noch ein kleines bisschen an laufzeitgewinn bringen, gerade wenn man die elemente nach und nach hinzufuegt...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2004-07-03 01:49
#83816 #83816
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Ronnie,02.07.2004, 19:31]Ich verstehe es im Moment nicht ganz, aber die Investition in das Perl-Kochbuch ist durchaus empfehlenswert.[/quote]
Danke für die Erklärung...

Das Buch steht auch bei mir ganz oben auf der Liste...
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/
Gast Gast
 2004-07-03 03:21
#83817 #83817
[E|B
,02.07.2004, 18:54]@Dieter

Nur ruhig, er wollte doch nur wissen, WIE es geht. War doch keine böse Absicht! :)

Der weiss ganz genau WIE es geht ...
aber bitte nicht unterstellen dass es bösartig sein könnte was der Mann da so schreibt.
esskar
 2004-07-03 03:42
#83818 #83818
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Dieter,03.07.2004, 01:21]
[E|B
,02.07.2004, 18:54]@Dieter

Nur ruhig, er wollte doch nur wissen, WIE es geht. War doch keine böse Absicht! :)

Der weiss ganz genau WIE es geht ...
aber bitte nicht unterstellen dass es bösartig sein könnte was der Mann da so schreibt.[/quote]
woher kennt ihr euch?
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2004-07-01 15:11.