Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich suche ein Tool, dass mir angibt, wieviel Hauptspeicher Programm X belegt.

Und wenn das Programm X beendet wird soll das Tool mir angeben, ob wirklich alles an Hauptspeicher was vorher allokiert wurde wieder freigegeben wurde.

Frank

Geschrieben
Original geschrieben von palvoelgyi

ich suche ein Tool, dass mir angibt, wieviel Hauptspeicher Programm X belegt.

Hmm, Taskmanager? :D

Original geschrieben von palvoelgyi

Und wenn das Programm X beendet wird soll das Tool mir angeben, ob wirklich alles an Hauptspeicher was vorher allokiert wurde wieder freigegeben wurde.

Du könntest ein RAM-Defragmentierungstool nehmen, während der Laufzeit schauen, wie viel RAM belegt ist und nach der Beendigung des Programms noch mal nachschauen, ansonsten wüsste ich keine Methode, wie man das rausfinden könnte.

Geschrieben

Bei dem Tool kann man aber nicht bestimmte Anwendungen beobachten oder?

Hintergrund ist folgender.

Wir haben einige Anwendungen die viel Arbeitsspeicher brauchen. Und wir wollen feststellen ob die Anwendung beim Beenden wieder alles frei gibt.

Frank

Geschrieben

Neee, bestimmte Anwendungen kann man da, wie es scheint, wohl nicht überwachen.

Aber wie Eye-Q schon gesagt hat, kannst du damit doch indirekt das Programm überwachen, indem du den Ramverbrauch des Programmes misst und dann nach dem Beenden des Programmes schaust, ob der Ram freigegeben wurde.

Geschrieben

Wenn ein Prozess unter Windows beendet wird, dann sorgt das Betriebssystem dafür, dass belegte Ressourcen (virtueller Speicher, Handles usw.) wieder freigegeben werden. Selbst wenn also das Progamm Speicherlecks enthält, die den Speicherverbrauch während der Laufzeit anwachsen lassen: Beim Beenden räumt Windows auf.

Geschrieben

Hallo Klotzkopp,

Mal angenommen, ich habe ein Programm welches 15MB Ram benötigt, ein weiteres welches 18MB verbraucht und ein drittes welches 43MB verbraucht, dann wären das ingesamt 76MB des verfügbaren Arbeitsspeichers.

Nun beende ich ich alle drei Programme und Windows gibt mir diese 76MB auch wieder komplett frei?

Wären dann nicht solche Programme wie von mir oben verlinkt nicht total unnütz?

Beschreibung Rambooster, Quelle klick :

Beschreibung:

Viele Windows-Anwendungen haben die unangenehme Eigenschaft, sich große Mengen an Arbeitsspeicher zu reservieren, ohne daß sie ihn wirklich benötigen. Startet man dann eine Applikation, die wirklich größere Speichermengen benötigt, beginnt das Betriebssystem oft die Auslagerungsdatei zu nutzen statt den unbenutzten, aber reservierten Speicher wieder freizugeben. Dieses Manko behebt das Tool RAM Booster. Das Utility überwacht ständig den verfügbaren Speicher und kann auf Mausklick oder automatisiert versuchen, eine bestimmte Menge an RAM freizugeben. Ist der Speicher ungenutzt reserviert, gelingt es dem Tool ohne größere Probleme, bis zu 50 Prozent des Arbeitsspeichers freizugeben

Oder habe ich da jetzt etwas falsch verstanden, wenn ja - Sorry.

Geschrieben

Man muss hier zwischen physischem und virtuellem Speicher unterscheiden.

Soweit ich weiß, versuchen solche Tools, längere Zeit nicht benötigte Seiten in die Auslagerungsdatei zu verschieben, so dass wieder Seiten im physischem Speicher verfügbar sind. Wirklich "freigegeben" wird da nichts.

Das verlinkte Tool tut eigentlich nicht viel mehr, als große Mengen Speicher zu reservieren. Dadurch werden ungenutzte Seiten anderer Prozesse auf die Festplatte ausgelagert. Dann gibt das Tool den angeforderten Speicher wieder frei, die ausgelagerten Seiten bleiben aber ausgelagert, solange nicht auf sie zugegriffen werden muss. Dadurch ist hinterher mehr physischer Speicher frei - der benutzte virtuelle Speicher hat sich natürlich nicht verändert.

Diese Tools sind eigentlich nur unter Windows 9X sinnvoll, weil dort die Speicherverwaltung nicht besonders gut darin ist, die richtigen Seiten zu Auslagern zu finden. Die Speicherverwaltung von Windows 2000 und XP ist besser, was effektives Auslagern angeht.

Geschrieben

Da muss ich Klotzkopp voll Recht geben.

RAMBooster kann doch eigentlich nicht wissen welcher 32Bit Arbeitsspeicherbereich von welchem Programm genutzt wird.

Lediglich die letzten Zugriffe werden mitgeloogt, sodass RAMBooster erkennt welcher Speicherbereich nicht häufig genutzt wird. Diese Pages werden dann auf die langsamerer Festplatte ausgelagert.

Bei Bedarf werden diese Pages dann wieder in einen reservierten, freien Bereich des Arbeitsspeichers geladen. Dieses Auslagern von Teilen des Arbeitsspeichers wird Swapping genannt.

Dadurch erhält man mehr schnelleren RAM auf Kosten der Festplattengröße.

Das Betriebssystem kann nicht mehr benutzten Arbeitsspeicher wieder freigeben damit dieser wieder benutzt werden kann. Diese Garbage Collection verhindert einen Stillstand des Systems wegen Speichermangel.

MVG

need-some-blood

Geschrieben
Original geschrieben von need-some-blood

Das Betriebssystem kann nicht mehr benutzten Arbeitsspeicher wieder freigeben damit dieser wieder benutzt werden kann.

Moin need-some-blood,

das weiß ich. ;)

Nur was ich denke, dass Windows vielleicht nicht alles wieder zu 100% freigeben kann. :rolleyes:

Geschrieben

Moin Crash,

wenn du ein Programm normal schließt. Also nicht über den Task Manager. Sollte es eigentlich funktionieren. Denn beim Programmaufruf wird der benötigte Arbeitsspeicher in 32bit-Blöcken errechnet und reserviert. Beim Beenden des Programms wird (meines Wissens nach) ein release-Befehl an die CPU gesendet. Die MMU löscht dann den reservierten Speicherbereich und gibt ihn wieder frei. Überreste sind dann im RAM nicht mehr vorhanden.

Wie das ganze über den Task Manager genau abläuft kann ich dir auf Anhieb nicht erklären. Da müsste ich vorher mal ne Runde googlen.

MVG

need-some-blood

[edit: Kann natürlich sein, das Windows 95 dies nicht perfekt beherscht. Aber schon bei 98 habe ich da keine Fehler entdecken können.]

Geschrieben

HALT. KOMMANDO ZURÜCK.

Mir fällt gerade ein, dass gerade genutzte DLLs sich nicht automatisch entladen. Diese bleiben dann natürlich im Speicher liegen.

Dies kann natürlich mit einem Eintrag in der Registrierungsdatei geändert werden, kann aber dann Systemabstürze verursachen.

Ich empfehle daher den "mem optimizer" aus dem Tune Up 2003-Programm.

MVG

need-some-blood

Geschrieben

Hallo,

Original geschrieben von need-some-blood

Bei Bedarf werden diese Pages dann wieder in einen reservierten, freien Bereich des Arbeitsspeichers geladen. Dieses Auslagern von Teilen des Arbeitsspeichers wird Swapping genannt.

Beim Swapping werden komplette Prozess (bis auf die Kontrollstrukturen) auf Festplatte ausgelagert. Beim Paging hingegen einzelne Speicherseite (was wesentlich effizienter ist und deutlich weniger Performance kostet). Paging ist normal und tritt selbst dann auf, wenn ausreichend physikalischer Speicher vorhanden ist. Swapping hingegen ist der letzte Rettungsanker einer Speicherverwaltung und sollte in der Praxis eigentlich nie auftreten.

Bestimmte Programme/Programmteile sollten sinnvoller nicht gepaged werden (beispielsweise shared libraries bzw. DLLs), da diese von mehreren Programmen verwendet werden.

Nic

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...