Cache vom Arbeitspeicher leeren?

02/03/2019 17:09 xSynooo#1
ist es möglich das man den Cache vom Arbeitsspeicher per sagen wir Button Click leeren kann?
ich weiß das dass Betriebssystem dafür verantwortlich ist mich würde nur ein Code beispiel Interessieren


mfg
02/03/2019 17:16 IceTrailer#2
Quote:
Originally Posted by xSynooo View Post
ist es möglich das man den Cache vom Arbeitsspeicher per sagen wir Button Click leeren kann?
ich weiß das dass Betriebssystem dafür verantwortlich ist mich würde nur ein Code beispiel Interessieren


mfg


Was meinst du mit Cache vom Arbeitsspeicher?
02/03/2019 17:29 xSynooo#3
Quote:
Originally Posted by IceTrailer View Post
Was meinst du mit Cache vom Arbeitsspeicher?
nicht mehr benötigte Prozesse die im Cache vorhanden sind zu löschen
02/03/2019 20:25 warfley#4
Falls ich dich richtig verstanden hast meinst du das Betriebsysteme Programme cachen die häufig/vor kurzem ausgeführt werden, der grund warum das unter Linux z.B. funktioniert:
Code:
$> ls
$> rm $(which ls)
$> ls
Da ls immernoch gespeichert ist kann es ausgeführt werden ohne das ls nochmal geladen werden muss (was ja nicht mehr exsistiert)

Wenn der Speicher benötigt wird, bereinigt dein Betriebsystem den Speicher automatisch. Wenn der Speicher nicht benötigt wird kanns dir eh egal sein. Außerdem sind die Chancen auch gut das die sachen sogar nur im Pagefile liegen, und den physischen Arbeitsspeicher nicht mal berühren.

Um auf deine Frage zu Antworten, nein, Moderne Betriebsysteme erlauben dir das nicht, da es keinen Grund dafür gibt es zu erlauben (wie gesagt es kommt nie dazu das nicht benötigter cache echten Physikalischen benötigten Speicher belegt), und man viel zu viel kaputt machen könnte wenn der Nutzer, oder Anwendungen, auf diese Mechaniken Zugriff hätten.
Eine Ausnahme dazu besteht natürlich bei Kernel Modulen, unter Linux, BSD und sogar OSX ist es möglich kernel erweiterungen zu schreiben, aber ich denke mal das meinst du damit nicht.
02/03/2019 22:01 florian0#5
Quote:
Originally Posted by warfley View Post
Um auf deine Frage zu Antworten, nein, Moderne Betriebsysteme erlauben dir das nicht
Erlauben nicht, möglich ist es trotzdem. Der Cache wird aufgelöst, wenn der Arbeitsspeicher benutzt wird. Von daher kann man einfach den ganzen Ram aufbrauchen und hat quasi den Cache geleert.

Das mag auf den ersten Blick ziemlich dumm erscheinen und auf jedem anderen Betriebssystem würde ich den Interessentenkreis eines solchen Programmes für Dumm eklären.. Aber ich habe bei Windows 7 mit viel IO früher häufg Bluescreens dank Out of Memory durch Cache bekommen. Das hat sich durch stündliches Leeren des Caches mit besagter Technik gelöst. Just Windows Things.
02/04/2019 11:12 xSynooo#6
Quote:
Originally Posted by warfley View Post
Falls ich dich richtig verstanden hast meinst du das Betriebsysteme Programme cachen die häufig/vor kurzem ausgeführt werden, der grund warum das unter Linux z.B. funktioniert:
Code:
$> ls
$> rm $(which ls)
$> ls
Da ls immernoch gespeichert ist kann es ausgeführt werden ohne das ls nochmal geladen werden muss (was ja nicht mehr exsistiert)

Wenn der Speicher benötigt wird, bereinigt dein Betriebsystem den Speicher automatisch. Wenn der Speicher nicht benötigt wird kanns dir eh egal sein. Außerdem sind die Chancen auch gut das die sachen sogar nur im Pagefile liegen, und den physischen Arbeitsspeicher nicht mal berühren.

Um auf deine Frage zu Antworten, nein, Moderne Betriebsysteme erlauben dir das nicht, da es keinen Grund dafür gibt es zu erlauben (wie gesagt es kommt nie dazu das nicht benötigter cache echten Physikalischen benötigten Speicher belegt), und man viel zu viel kaputt machen könnte wenn der Nutzer, oder Anwendungen, auf diese Mechaniken Zugriff hätten.
Eine Ausnahme dazu besteht natürlich bei Kernel Modulen, unter Linux, BSD und sogar OSX ist es möglich kernel erweiterungen zu schreiben, aber ich denke mal das meinst du damit nicht.


vielen lieben dank für deine Mühe :) jetzt bin ich ein wenig schlauer