Batchprogrammierung

icezero

Lt. Commander
Registriert
Mai 2005
Beiträge
1.088
Servus,

ich würde gerne wissen, ob es möglich ist über ein kleine Batch-Skript, den inhalt des Arbeitsspeichers im Windox betrieb zu leeren?
 
Hi,

mit normaler Batchprogrammierung dürfte das nicht gehen.

Eigentlich solltest du egal mit welcher Sprache, den RAM nicht einfach so löschen dürfen, da sollte das OS vorher schon nen Riegel wegen zugriffs verletzungen vorschieben.

mfg

Mysterox
 
Batch nicht, aber VB Script

. erstell ne Textdatei und füge folgende Zeile ein
Code:
FreeMem = Space(32000000)
. das ganze als .vbs speichern


Bei jedem start dieses Scriptes werden 32MB RAM freigeschaufelt. Für ne andere Größe des freizuräumenden Speichers einfach den Wert Space(XXXXX) ändern. Du solltest aber niemals mehr als die Hälfte deines physikalischen RAMs zum freiräumen angeben, weil dein System dabei crashen könnte (aber es geht nix dabei kaputt, sondern wäre nur für diese Session). Komplett leerräumen würde das Sys freezen lassen oder dir nen BSOD bringen... ;)
 
feine sache. danke.

Hintergrund der Idee: ich hatte mal gelesen, dass Programme / Spiele schneller starten, wenn man vorher was im Arbeitsspeicher frei macht. Es gibt von diversen XP optimzer Tools für so was. ( aber von diesen dingern halte ich nicht viel)
hatte mir jedenfalls überlegt ein Batch zu schreiben, dass vor beginn einen Spiels mir den RAM ein wenig frei macht und dann das gewünschte Spiel startet.
An das OS hatte ich irgendwie garnicht gedacht *grins*
ich werde es mal testen und schauen, ob ads überhaupt was bringt, da ja das RAM-Leeren ja auch eine gewisse zeit in ansprucht nimmt.

Man kann doch aber davon ausgehen, dass Daten im RAM schneller bearbeitet werden können als in der Auslagerungsdatei, oder?
 
Ja türlich ist physikalische RAM schneller als der virtuelle.
Analog dazu kannst du auch deinen RAM vor dem Spielstart defragmentieren.

. ebenfalls Textdatei erstellen und als Inhalt die Zeile
Code:
Mystring = (16000000)
. wieder als .vbs speichern - fertig
 
wie viel zeit würde das bei vorhandenem 1,5Gig Ram und bei deinem Rat bei 50% der Gesamtkapazität in anspruch nehmen.

hmm ich glaube ich sollte mir mal VB Scripting näher anschauen. :D
Danke!
 
defrag macht mehr sinn.. weil wenn du einfach den speicher leermachst.. dann kanns auch gut sein das da speicher leer gemacht wird der noch gebraucht wird ;)
 
DunkelAngst schrieb:
Batch nicht, aber VB Script

. erstell ne Textdatei und füge folgende Zeile ein
Code:
FreeMem = Space(32000000)
. das ganze als .vbs speichern
Das ist leider Quatsch, ebenso wie deine andere Lösung. Space() allokiert Speicher für einen String der aus Leerzeichen ("Space") besteht und zwar in der Größe die du angibst. Space(32000000) würde nichts anderes machen als freien Arbeitsspeicher zu bestetzen und falls dieser nicht ausreicht auf den virtuellen Speicher zurückgreifen. Damit hast du weder Arbeitsspeicher freigemacht noch Performance gewonnen, sondern genaugenommen das Gegenteil erreicht.
 
aha...

dh... der würde dann nur 0'er in den Speicher schreiben?
gibt es denn ne möglichkeit den Speicher frei zu räumen?
Macht das überhaupt was aus?
 
icezero schrieb:
aha...

dh... der würde dann nur 0'er in den Speicher schreiben?
gibt es denn ne möglichkeit den Speicher frei zu räumen?
Macht das überhaupt was aus?
Genau genommen schreibt er bei Space(32000000) den Wert 0x20 (hexadezimal) 32000000 Mal in den RAM, das macht rechnerisch ~30,5 MB RAM mit Spaces verschwendet :p.

Zu deiner Frage, ob man Speicher freiräumen kann: Nun ja theoretisch ist das möglich, man sollte aber Bedenken, dass jedes Betriebssystem eine eigene Speicherverwaltung beinhaltet und das hat auch seinen Grund. Applikationen sind auf Arbeitsspeicher angewiesen, solange sie laufen. Ist ein Prozess beendet, so steht diesem auch kein Arbeitsspeicher mehr zu Verfügung. Ob das in der Praxis unter Windows immer so einwandfrei funktioniert kann ich nicht sagen, aber ich würde davon abraten einfach mal so eigenständig Speicher frei zu schaufeln (egal mit welchem Tool), wie hier schon mehrfach gesagt wurde.
 
Zurück
Oben