News 8 GB als Ziel: Wie Microsoft den RAM-Verbrauch in Windows 11 reduzieren will

TomTDooley schrieb:
Bei Ruhezustand ist das bei Dir schon ein enormer Bedarf an Arbeitsspeicher.
Du siehst ja selbst am besten im App-Verlauf, wo die großen Lasten liegen.
Was für eine "Last" soll das sein? Wird der Arbeitsspeicher mit zunehmendem Füllstand etwa langsamer? Unsinn. Solange genug RAM da ist, spielt es keine Rolle, wie der Füllstand ist. RAM ist da, um langsame Zugriffe auf die Datenträger zu vermeiden und es macht Sinn z.B. häufig genutzte Dateien dort zu sammeln.
 
Zuletzt bearbeitet:
@Backfish

Solange meine Systeme eine Grundlast von ca 2- 2,5 GB haben, finde ich knapp 6 GB recht viel.
Vermutlich laufen da doch einige Dienste die man getrost abschalten kann.

Ohne einen Blick auf die App-Liste kann man allerdings nur raten. Da sieht man die einzelnen Verbraucher besser, als im zusammenfassenden Screenshot.
 
StevenB schrieb:
Und was war die Ursache? Zu 90% der Cache vom tollen WebView2!
Vor 25 Jahren fand ich Browser als UI ziemlich cool, weil ich mit der WinAPI so schlecht klar gekommen bin.
Jetzt würde mich inzwischen interessieren, was da eigentlich im Speicher liegt.

Klar, Speicher kann man gegen Rechenpower tauschen, es sind auch neue Funktionen dazu gekommen.
Aber es fühlt sich an, als würde einem inzwischen ein 50Tonnen Mittelklassewagen verkauft werden und man schaut darauf und fragt sich, ob Rückfahrkamera, Airbags, Klimaanlage usw. wirklich 49 Tonnen Mehrgewicht verursachen müssen.

Vermutlich liegen 200 Kopien des Kabelbaums im Speicher und gleich noch die Kabelbäume aller erdenklichen anderen Automodelle.
Tatsächlich habe ich mich nicht zu tief mit Linkern beschäftigt, aber kann es sein, dass diese Unterteilung in Objekte dazu führt, dass da viel pro Objekt im Speicher liegt?
Natürlich darf das Linken nicht ewig dauern, tut es bei VS Studio teilweise trotzdem.

😅Ich muss mich wirklich mal mit den C++ Modulen auseinander setzen, das klang, als würde es einen kleinen Teil dieser Probleme lösen, aber auch einen großen Teil ungelöst lassen. Z.B. was passiert, wenn 20 Libraries wieder verschiedene Versionen einer anderen Library nutzen. Dann hat man die in 20 Versionen im Speicher herumliegen.
Klar hätte man das Problem nicht, wenn man das alles selber programmieren würde. Aber würde man alles selber programmieren, würde man mit dem Programm nicht fertig werden und sicher auch einen Haufen Fehler machen, weil man kein Experte im Programmieren eines Datenbankbackends + Kryptographie ist.
Vielleicht hilft einem da KI, dass man gute Annäherungen an die Lösungen eines Paketsystems erraten kann und die Schnittstellen halbwegs automatisch anpassen kann, falls man Pakete über viele Versionen tauscht (Inkompatibilitäten sind ja auch ein Problem)
 
  • Gefällt mir
Reaktionen: StevenB
INe5xIlium schrieb:
Ich muss mich wirklich mal mit den C++ Modulen auseinander setzen, das klang, als würde es einen kleinen Teil dieser Probleme lösen, aber auch einen großen Teil ungelöst lassen. Z.B. was passiert, wenn 20 Libraries wieder verschiedene Versionen einer anderen Library nutzen.
C++ Module sind nicht äquivalent zu Libraries/Abhängigkeiten, sondern ermöglichen libraries den Code in Eiheiten aufzuteilen ohne das über das überholte include System machen zu müssen.

Dann hat man die in 20 Versionen im Speicher herumliegen.
Klar hätte man das Problem nicht, wenn man das alles selber programmieren würde. Aber würde man alles selber programmieren, würde man mit dem Programm nicht fertig werden und sicher auch einen Haufen Fehler machen, weil man kein Experte im Programmieren eines Datenbankbackends + Kryptographie ist.
Dann hat man genauso das Problem - meinst das selbst programmierte braucht keinen Platz im Speicher?

Wenn du eh eine andere Version nutzt: Dinge, die du nicht nutzt, kannst loswerden, wenn du statisches Linking mit Link Time Optimization verwendest.
 
KitKat::new() schrieb:
Wenn du eh eine andere Version nutzt: Dinge, die du nicht nutzt, kannst loswerden, wenn du statisches Linking mit Link Time Optimization verwendest.
Funktioniert das wirklich so gut?
Weil alleine in der STL sollte ein großer Teil der Funktionen wegoptimiert werden können in der Praxis, wenn das Programm fertig compiliert ist.
Die Funktion selbst läuft auch schnell, trotzdem ist eine Exe-Datei gleich mal 100kb größer, wenn man 1x stringstream verwendet hat.
Vielleicht habe ich die Link Time Optimization entweder nie richtig aktiviert oder es ist inzwischen besser geworden. Spätestens beim Verwenden von Polymorphie dachte ich, dass viele Optimierungen aussteigen und einfach wieder alles hineinlinken?

Ein statisch gelinktes "Hello World" mit QT ist 5MB groß. Ich kann mir irgendwie nicht vorstellen, dass alles darin wirklich verwendet wird. Abgesehen von winzigen Beispielen habe ich mir bisher aber auch noch nie angeschaut, was nach dem Compilen in der ausführbaren Datei übrig bleibt.

Sonst stimm ich aber voll zu. Ich sollte nich den Eindruck erwecken, dass Module und Libraries das gleiche sind.
Auch sollte man niemanden motivieren zu viel selbst zu machen. Old School Programmierer wollen alles Mögliche an einfachen Programmkonstrukten optimieren, dabei kann der Compiler ein paar Schleifen und if-Anweisungen inzwischen vermutlich besser optimieren als die meisten, die es mit der Hand versuchen und dabei komischen, unwartbaren Code erzeugen.

Als ich vor 20 Jahren aber Crinkler zum Linken verwendet hatte, musste man auf alle Fälle alles selbst machen. Zugegeben, Crinkler kann vermutlich auch nicht optimieren (zumindest damals nicht).
Aber durch das Selbstprogrammieren könnte man (achtung, hypothetisch) darauf achten, dass Grundfunktionen nicht 20x in verschiedenen Abwandlungen im gleichen Programm existieren. Das ist in meinen Augen ein Problem, das bei größerer Software immer auftritt. Ein Team nutzt Library X, das andere Team Library Y und ein anderes Library X in der legacy Version. Da kann kein Compiler mehr etwas optimieren. Würde man alles selbst machen, könnte man einfach immer die gleiche Library verwenden.
Eventuell könnte man Dinge, die noch nicht richtig optimiert werden, gleich weglassen.

Oder ist es wirklich so, dass viele Softwareprogramme wegen der ganzen Funktionen >1GB an Speicherplatz verwenden?
Ergänzung ()

steirerblut schrieb:
Ich würd mir wünschen das der ganze 32 Bit Legacy Support Optional wird.
Macht der wirklich etwas schlechter?
Ich finde es eigentlich cool, dass ich Programme von 1995 einfach starten kann.
 
Zuletzt bearbeitet:
qiller schrieb:
Also Windows 11 (24H2+) läuft schlecht in einer Proxmox VM. Das merkt man vor allem im Vergleich zu einer Windows 10 VM. Ich hab da regelmäßig den Vergleich der Server-Pendents (Windows Server 2022 vs. Server 2025) Das liegt primär am standardmäßig aktivierten VBS und den neuen GUI Elementen. VBS kann man deaktivieren, in dem man nicht "host" als CPU-type nimmt (mit "host" werden die Virtualisierungsfähigkeiten in die VM durchgereicht und Win11 aktiviert dann VBS). Die lahme GUI kann man nur versuchen zu optimieren (Animationen deaktivieren, Farbtransparenz deaktivieren, im Explorer div. Features wie die Galery deaktivieren, klassisches Kontextmenü etc..). Bester Test ist einfach mal nen Rechtsklick auf dem Desktop nach dem Hochfahren machen. Unter Windows 10/2022 ist das Menü sogut wie instant offen. In Windows 11 hast erstmal ne Gedenksekunde (manchmal gehts auch garnicht auf und der Rechtsklick wird "verschluckt"). Einfach nur traurig, was MS da veranstaltet.
muss zugeben, dass ich W10 nicht ausprobiert habe und mir der vergleich fehlt. Außerdem habe ich W11 als Tiny11 installiert, das etwas sparsamer ist. Im Idle nimmt es sich etwas über 4 GB RAM. ist immer noch mehr als ubuntu mit knapp 3 GB inkl. Browser mit ein paat Tabs, aber für 8 GB ausreichend. auf jeden fall scheint MS in letzter Zeit gemerkt zu haben, dass sie an W11 arbeiten müssen.
 
Zurück
Oben