Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Webbrowser Speicherfreigabe (https://www.delphipraxis.net/71616-webbrowser-speicherfreigabe.html)

delphin06 18. Jun 2006 15:04


Webbrowser Speicherfreigabe
 
Hi

Ich hab mir n programm geschrieben, was sich automatisch auf einer Webseite einloggt und dann Daten um HTML code parst. So funzt alles ganz gut...aber.. die Webbrowser Komponente (TEmbeddedWB) verbraucht einfach zu viel RAM! :?

Ich erzeuge die Komponente erst zur Laufzeit rufe dann die Daten ab und gebe den Webbrowser anschließend wieder frei. Aber nachdem ich ihn freigegeben habe bleibt der RAM immer noch belegt. Wie kann ich den speicher, den der Webbrowser benutzt wieder freigeben?

Wäre super wenn jemand da ne Antwort wüsste


Gruß

Bernhard Geyer 18. Jun 2006 15:45

Re: Webbrowser Speicherfreigabe
 
Der IE Version < 7 hat Speicherbugs bei verwendung der COM-Objekte aus der MSHTML-Typbibliothek.
Du mußt einfach mal probieren an ein paar Stellen nach der Verwendung von COM-Intefaces diese Zusätzlich mit _Release freizugeben. Ist zwar eigenlich nicht so vorgesehen aber wenn MS über diverse Versionen aufgrund des Quasi-Monopols die SW-Qualität egal ist ...

delphin06 18. Jun 2006 16:31

Re: Webbrowser Speicherfreigabe
 
hat sich schon erledigt! Hab jez die Indy Komponente verwendet, weil ich rausgefunden hab das man den login auch über "get" schicken kann! Jez geht das bedeutend schneller und mein programm brauch nur noch halb so viel ram wie vorher :-D

Trotzdem Danke aber das wäre mir dann zu umständlich geworden

gerrylenz 7. Feb 2008 22:09

Re: Webbrowser Speicherfreigabe
 
Hi,

für den Fall das noch jemand eine Lösung sucht:

SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);

Gerry

API 8. Feb 2008 05:28

Re: Webbrowser Speicherfreigabe
 
Zitat:

Zitat von gerrylenz
Hi,

für den Fall das noch jemand eine Lösung sucht:

SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);

Gerry

Was bewirkt das in Zusammenhang mit der Fragestellung?

berens 9. Nov 2009 08:22

Re: Webbrowser Speicherfreigabe
 
Bin auch an der Antwort interessiert. Ich weiss, altes Thema, aber die Frage ist aktuell ;)

Zitat:

Hi,

für den Fall das noch jemand eine Lösung sucht:

SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);

Gerry

himitsu 9. Nov 2009 08:37

Re: Webbrowser Speicherfreigabe
 
MSDN-Library durchsuchenSetProcessWorkingSetSize

das $FFFFFFFF stellt übrigens eine -1 dar ... der Rest steht im MSDN

berens 9. Nov 2009 08:46

Re: Webbrowser Speicherfreigabe
 
Auf Deutsch: Ich entziehe meinem Programm den kompletten Arbeitsspeicher (neue Größe: 0 Bytes)? oO

himitsu 9. Nov 2009 08:50

Re: Webbrowser Speicherfreigabe
 
Auf Deutsch: es wird alles freigegeben, welches grad nicht benötigt wird.


Bezüglich einer optimierung ist dieses nicht der Fall, da ja eventuell gleich wer neuen Speicher anfordern könnte und eh ich den "jetzt" wegwerfe und dann bei Windows neuen Reservieren müßte, heb ich es halt noch etwas auf (so denkt halt ein "guter" Speichermanager)

berens 9. Nov 2009 12:55

Re: Webbrowser Speicherfreigabe
 
Hm, und den Befehl kann man problemlos beliebig oft (hintereinander) aufrufen, und schadet auch nicht, z.B. wenn man über Active-X etwas eingebunden hat?

Oder muss ich mit irgendwelchen "Nebenwirkungen" rechnen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 Uhr.
Seite 1 von 2  1 2      

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