Discussion:
FastMM und Rückgabe von Speicher an Windows
(zu alt für eine Antwort)
Matthias Frey
2014-12-22 10:18:29 UTC
Permalink
Hallo,
der FastMM holt sich doch von Windows den Speicher in großen Blöcken.
Bei Anfragen von kleinen und mittleren Blöcken teilt es diese Blöcke
selber in Teile weiter auf.

Unter welchen Umständen wird Speicher wieder an Windows zurückgegeben?
Oder wo genau kann ich RTF machen?

Matthias
Hans-Peter Diettrich
2014-12-22 11:49:15 UTC
Permalink
Post by Matthias Frey
Hallo,
der FastMM holt sich doch von Windows den Speicher in großen Blöcken.
Bei Anfragen von kleinen und mittleren Blöcken teilt es diese Blöcke
selber in Teile weiter auf.
Unter welchen Umständen wird Speicher wieder an Windows zurückgegeben?
Garnicht[1], wozu auch?

Beim Beenden eines Prozesses gibt jedes OS die benutzen Ressourcen
(Speicher, Filehandles...) frei - und das ganz ohne Mitwirkung des
Prozesses, denn der könnte ja auch abgestürzt sein.

Eine andere Frage ist, wie man Speicher für non-Delphi DLLs reservieren
kann, die ihren eigenen Speicher verwalten wollen.
Post by Matthias Frey
Oder wo genau kann ich RTF machen?
RTFM? Zu FastMM ist mir nichts bekannt, außer der mitgelieferten FAQ.

Wenn's wichtig ist, kannst Du Deine Frage in FastMM Discussion stellen:
http://sourceforge.net/p/fastmm/discussion/?source=navbar

Beim Stöbern (nach "release") habe ich dort u.a. gefunden:
http://sourceforge.net/p/fastmm/discussion/443400/thread/2f35c77d/?limit=25#7ec3
[1] Dort habe ich dann gaaanz unten einen Hinweis gefunden, daß Speicher
im FullDebugMode nicht zurückgegeben wird. Was bedeuten könnte...

DoDi
Matthias Frey
2014-12-22 17:26:09 UTC
Permalink
Post by Hans-Peter Diettrich
Post by Matthias Frey
Hallo,
der FastMM holt sich doch von Windows den Speicher in großen Blöcken.
Bei Anfragen von kleinen und mittleren Blöcken teilt es diese Blöcke
selber in Teile weiter auf.
Unter welchen Umständen wird Speicher wieder an Windows zurückgegeben?
Garnicht[1], wozu auch?
Damit andere ihn verwenden können. ;-)
In einer Anwendung bei der ich beteiligt bin wird laut Process-Explorer
Speicher zurückgegeben. Wer das macht ist mir nicht klar, es könnten
auch Teile die mit C++ oder C# entwickelt sind sein.
Post by Hans-Peter Diettrich
Beim Beenden eines Prozesses gibt jedes OS die benutzen Ressourcen
(Speicher, Filehandles...) frei - und das ganz ohne Mitwirkung des
Prozesses, denn der könnte ja auch abgestürzt sein.
Das ist mir bekannt. Da hat FastMM wenig damit zu tun.
Post by Hans-Peter Diettrich
Eine andere Frage ist, wie man Speicher für non-Delphi DLLs reservieren
kann, die ihren eigenen Speicher verwalten wollen.
Auch das hat mit FastMM nichts zu tun - und damit ich auch nicht.
Ihren eigenen Speicher werden DLLs bei 32-Bit wohl auch nur innerhalb
den gemeinsamen < 4 GByte bekommen können.
Post by Hans-Peter Diettrich
Post by Matthias Frey
Oder wo genau kann ich RTF machen?
RTFM? Zu FastMM ist mir nichts bekannt, außer der mitgelieferten FAQ.
In letzterer habe ich auch nichts gefunden.
Post by Hans-Peter Diettrich
http://sourceforge.net/p/fastmm/discussion/?source=navbar
http://sourceforge.net/p/fastmm/discussion/443400/thread/2f35c77d/?limit=25#7ec3
sourceforge mag mich nicht - zumindest kommt keine Mail an.
Post by Hans-Peter Diettrich
[1] Dort habe ich dann gaaanz unten einen Hinweis gefunden, daß Speicher
im FullDebugMode nicht zurückgegeben wird. Was bedeuten könnte...
In der FAstMM4.pas gibt es etliche "free" wie z.B. eine
function FastFreeMem ...
Post by Hans-Peter Diettrich
DoDi
Danke
Matthias

Loading...