Einzelnen Beitrag anzeigen

delphin06

Registriert seit: 18. Jun 2006
154 Beiträge
 
#20

Re: Speicher läuft voll bei WMI....

  Alt 24. Sep 2007, 11:28
Echt super! der Speicherverbrauch in der WMIClass.Query() Funktion bleibt jetzt tatsächlich konstant! Allerding habe ich ein zweites speicherleck in der WMI.pas gefunden (die unit is wohl voll mit speicherlecks^^)
und zwar in der WMIClass.Connect() Funktion.

Hier mal der code:
Delphi-Quellcode:
Function TWMIClass.Connect(Const Comp, NameSpace, User, Pass: WideString): Boolean;
    Begin
      If _WMILocator = nil Then _WMILocator := TSWbemLocator.Create(Nil);
      Try
        _WMIServices := _WMILocator.ConnectServer(Comp, NameSpace, User, Pass, '', '', 0, nil);
        Result := True;
      Except
        Result := False;
        _WMIServices := nil;
        If ExceptObject is Exception Then
          _LastError := Exception(ExceptObject).Message
        Else _LastError := 'Unknown Error: ' + ExceptObject.ClassName;
      End;
    End;
Hmm...ich hab grad nochmal nachgeguckt...ab und zu kommen auch in der query funktion noch n paar kb hinzu...aber nur noch ganz selten. genauso mit der connect funktion, wobei diese fast immer speicher hinzunimmt. Alles sehr schwankend. Das is wirklich merkwürdig.

Mein export der ganzen geschichte in eine dll hat auch nicht wirklich was gebracht. ich habe die sache mit der übergabe von strings in die dll rausgenommen, weil ich dachte es lag evtl daran aber trotzdem steigt der speicherbedarf. Ich versteh das nicht, wenn ich eine dll wieder freigebe, dann müsste doch auch der speicher den die dll gebraucht hat wieder frei werden...
Naja ich werd mcih da nochmal n bisschen mit beschäftigen vieleicht finde ich ja noch das problem
  Mit Zitat antworten Zitat