Autor Thema: Speicher-Leak  (Gelesen 5525 mal)

SourceBase

  • Gast
Speicher-Leak
« am: 08.07.09 - 08:12:57 »
Hallo,

ich nutze die com - API von Lotus Notes um aus .NET auf Termine und Aufgaben zuzugreifen.

Dazu habe ich eine Klasse, die immer vorhanden ist. Timergesteuert ruft diese Unterklassen auf, die auf Lotus Notes zugreift und die com-Objekte erzeugt. Nach jedem Time-Event steigt der Speicherverbrauch des Programms im Task-Manager ins unermäßliche.


Mit Speicher-Verwaltungsprogrammen wie ANTZ Memory Profiler kann man leider nur die .NET Objeklte überwachen. Diese bleioben über die gesamte Laufzeit aber Konstant.

Muss man die Com-Objekte besonders behandeln, das der GarbageCollector diese wegräumt?

Ich erstelle ein Objekt mit:
Domino.NotesSession notesSession = null;
notesSession = new Domino.NotesSessionClass();
notesSession.Initialize(NotesPassword);

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Speicher-Leak
« Antwort #1 am: 08.07.09 - 09:57:04 »
Hallo SourceBase

Ja.  :)
Alles brav immer wenn man nicht mehr braucht auf Null setzen und manchmal am passenden Ort GC.Collect aufrufen (in Schleifen kann sonst eklig werden), dann sollte das klappen.

Hoffe hilft Dir etwas weiter. Bin auch nicht wirklich DotNet Profi. Aber musste mich auch schon etwas damit rumschlagen.

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

SourceBase

  • Gast
Re: Speicher-Leak
« Antwort #2 am: 08.07.09 - 10:24:36 »
Vielen Dank,

leider bringt dies nicht so viel :-( hatte ich gestern bereits versucht. Kennst du evtl. ein Programm, mit dem man Com-Objekte beobachten kann?  Mich würde einfach ma interessieren wieviele im Speicher rumfliegen.

Habe bereits alles auf NULL gesetzt und danach den GC aufgerufen. Ist echt zum verzweifeln.

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Speicher-Leak
« Antwort #3 am: 08.07.09 - 11:47:24 »
Hi SourceBase

Nein, kenne ich nicht. Nur sonst was im Netz gefunden.
Da schreiben die was von Marshal.ReleaseComObject(person1)

Hier noch der Link:
http://www.getdotnetcode.com/gdncstore/free/Articles/ReleasingComObjectsWithVbNet.htm

Und noch ein Link gefunden:
http://dotnetdebug.net/2005/09/10/runtime-callable-wrapper-internals-and-common-pitfalls/

Gruss
Remo
« Letzte Änderung: 08.07.09 - 11:55:40 von Fedaykin »
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

SourceBase

  • Gast
Re: Speicher-Leak
« Antwort #4 am: 08.07.09 - 18:57:31 »
Hey,

danke für die Seite, mit hilfe des Tools konnte ich feststellen, das die OLE32.DLL der Übeltäter ist. Ich denke sie dient als Schnittstelle zwischen Lotus Notes und .NET oder liege ich da falsch?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz