AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIDSMTP.Connect = Speicherfresser??
Thema durchsuchen
Ansicht
Themen-Optionen

TIDSMTP.Connect = Speicherfresser??

Ein Thema von JamesBlond · begonnen am 13. Apr 2004 · letzter Beitrag vom 13. Apr 2004
Antwort Antwort
JamesBlond

Registriert seit: 17. Mär 2004
Ort: PB
25 Beiträge
 
Delphi 5 Enterprise
 
#1

TIDSMTP.Connect = Speicherfresser??

  Alt 13. Apr 2004, 07:43
Hallo!
Hab einen Emailversand mit der INDY-Komponente realisiert. Es funktioniert auch, allerdings hab ich dazu mal ne Frage:
Ich verwende die ganzen Indy-Komponenten nur als lokale Variablen in einer Subprozedur, d.h. die Objekte sind nicht immer vorhanden, sondern werden halt ggf. erzeugt.
Wenn ich nun mit IDSMTP1.Connect die Verbindung herstellen möchte, klappt das auch problemlos. Allerdings belegt dies 2000 K Speicher(!!)
Warum wird der Speicher nach Ende der Prozedur nicht wieder freigegeben? (Obwohl ein IDSMTP1.Free durchgeführt wird)?
Bin für alle Anregungen dankbar!

Gruß

Matthias
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#2

Re: TIDSMTP.Connect = Speicherfresser??

  Alt 13. Apr 2004, 20:09
Hallo Matthias!

Wächst der Speicherverbrauch bei jedem Aufruf der entsprechenden Prozedur oder wird nur nach dem ersten Aufruf der belegte Speicher nicht weniger?

Daß der einmal belegte Speicher erst zum Programmende wieder ans System zurückgegeben wird, ist ganz normal - man könnte ja wieder was brauchen. In diesem Zusammenhang fallen dynamische Arrays sehr unangenehm auf, bei einer Vergrößerung wird alles umkopiert und damit neuer Speicher belegt.

Die Indys sind erst ab D4 verfügbar, weil sie mit dynamischen Arrays arbeiten - und die gibt es erst seit D4!

Prüfe Dein Programm mal mit MemProof - das zeigt Speicherlecks sehr zuverlässig an.

Sollten sich Speicherlecks finden, müssen wir für Hilfestellung wohl doch Roberto Blanco (das ist der deutsche Sänger, an den sich die Leute nur dunkel erinnern können - eigene Aussage!) sinngemäß zitieren:
Zitat:
Ein bißchen Source muß sein!
Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
JamesBlond

Registriert seit: 17. Mär 2004
Ort: PB
25 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: TIDSMTP.Connect = Speicherfresser??

  Alt 13. Apr 2004, 21:35
Hallo!
Erstmal danke für die Antwort.
Der Speicher steigt nur beim 1. Aufrufen an. Gibt es keine Möglichkeit, den Speicher auch während des Programmes an das BS zurückzugeben? (Es soll ein Windows-Service werden, der ggf. bis zu x Jahren am Stück läuft...)
Wie funktioniert dieses Memproof denn? Hab's mir wohl runtergeladen, aber ich steig da überhaupt nicht durch, was mir das Programm da so anzeigt.
Wäre für ne kleine Starthilfe (was Memproof angeht) sehr dankbar.

Danke & Gruß

Matthias
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: TIDSMTP.Connect = Speicherfresser??

  Alt 13. Apr 2004, 21:50
Zitat von JamesBlond:
Der Speicher steigt nur beim 1. Aufrufen an.
Das ist völlig normal und häufig bei Windows-Componenten. Das selbe zeigt sich übrigens auch bei Fenstern.

In diesem Fall kann es auch an der WinSock liegen die darunter liegt.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz