Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Memory Leak bei INDY 10 in der SMTP Komponente? (https://www.delphipraxis.net/76066-memory-leak-bei-indy-10-der-smtp-komponente.html)

emsländer 29. Aug 2006 12:43


Memory Leak bei INDY 10 in der SMTP Komponente?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

man nehme eine leere Form. Die erste Anweisung beim Start sollte der Aufruf des MemoryManagers sein:

Delphi-Quellcode:
program test;

uses
  Forms,
  main in 'main.pas' {frmmain};

{$R *.res}

begin
  ReportMemoryLeaksOnShutdown := True;
  Application.Initialize;
  Application.CreateForm(Tfrmmain, frmmain);
  Application.Run;
end.
Auf die Mainform ziehe man aus IndyClients die SMTP Komponente.

Compilieren, starten, beenden ..... => Meldung siehe Anhang


Gruss

EL

xaromz 29. Aug 2006 12:50

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Hallo,

das ist ein bekanntes Problem. in den INDYs wird irgendwo eine TIdCriticalScetion angelegt und nicht mehr freigegeben. Das ist sogar im Quellcode so vermerkt. Da steht sinngemäß: "Da wir nicht wissen, ob das Objekt später noch verwendet wird, lassen wir es leben und von Windows wegräumen, wenn das Programm beendet wird."

Gruß
xaromz

emsländer 29. Aug 2006 12:51

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Zitat:

Zitat von xaromz
Hallo,

das ist ein bekanntes Problem. in den INDYs wird irgendwo eine TIdCriticalScetion angelegt und nicht mehr freigegeben. Das ist sogar im Quellcode so vermerkt. Da steht sinngemäß: "Da wir nicht wissen, ob das Objekt später noch verwendet wird, lassen wir es leben und von Windows wegräumen, wenn das Programm beendet wird."

Gruß
xaromz

Da mein Programm ein Dienst wird, wird das Ding nie beendet *grusel*


Gruss

Jörg

xaromz 29. Aug 2006 12:53

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Hallo,
Zitat:

Zitat von emsländer
Da mein Programm ein Dienst wird, wird das Ding nie beendet *grusel*

Wieso nicht :gruebel: ?

Gruß
xaromz

emsländer 29. Aug 2006 12:57

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von emsländer
Da mein Programm ein Dienst wird, wird das Ding nie beendet *grusel*

Wieso nicht :gruebel: ?

Gruß
xaromz

Läuft auf nem Server ..... und den schaltet man nicht mal so eben aus.


Gruss

EL

xaromz 29. Aug 2006 13:00

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Hallo,
Zitat:

Zitat von emsländer
Läuft auf nem Server ..... und den schaltet man nicht mal so eben aus.

Und was stört Dich dann? Das Problem ist ja kein zyklischer Leak. Es wird nur beim Beenden des Programms ein Objekt nicht freigegeben, was an dieser Stelle aber eh schon egal ist. Das ist zwar kein schöner Programmierstil, ab die INDYs sind da sowieso etwas eigen.

Gruß
xaromz

supermuckl 29. Aug 2006 13:04

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
@emsländer

womit hast du diese leak meldung hinbekommen? sowas brauch ich auch :)

emsländer 29. Aug 2006 13:08

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Zitat:

Zitat von supermuckl
@emsländer

womit hast du diese leak meldung hinbekommen? sowas brauch ich auch :)

siehe im Anfang. In die erste Zeile Deines Projektes
Delphi-Quellcode:
ReportMemoryLeaksOnShutdown := True;
Beispiel:
Delphi-Quellcode:
program test;

uses
  Forms,
  main in 'main.pas' {frmmain};

{$R *.res} 

begin
  ReportMemoryLeaksOnShutdown := True;
  Application.Initialize;
  Application.CreateForm(Tfrmmain, frmmain);
  Application.Run;
end.
Gruss

EL

xaromz 29. Aug 2006 13:08

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Hallo,
Zitat:

Zitat von supermuckl
womit hast du diese leak meldung hinbekommen? sowas brauch ich auch :)

Das ist eine Meldung vom Memorymanager FastMEMFastMM, welcher in Delphi 2006 eingebaut ist. Für Delphi 6 musst Du Dir die Komponente runterladen. Einfach in Google suchen.

Gruß
xaromz

emsländer 29. Aug 2006 13:09

Re: Memory Leak bei INDY 10 in der SMTP Komponente?
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von emsländer
Läuft auf nem Server ..... und den schaltet man nicht mal so eben aus.

Und was stört Dich dann? Das Problem ist ja kein zyklischer Leak. Es wird nur beim Beenden des Programms ein Objekt nicht freigegeben, was an dieser Stelle aber eh schon egal ist. Das ist zwar kein schöner Programmierstil, ab die INDYs sind da sowieso etwas eigen.

Gruß
xaromz

Ich HASSE Leaks in einem Produktivsystem

Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz