Crash wegen Out of Memory - und ich weiß nichts davon? (PSA Windows 10)

So als kleines "Public Service Announcement" weil ich grad sehr verblüfft darüber stolpere und es auf meinem System auch 2 ältere Simulator-"Abstürze" erklärt und vorher nirgendwo je was dazu gelesen hab:

Wenn einem Betriebssystem der Arbeitsspeicher (und der Swap, zu deutsch: Auslagerungsdatei) ausgehen, schreitet üblicherweise der OOM-Killer ein und schießt betriebssystemseitig den größten Speicherfresser ab. Das ist nichts ungewöhnliches und die einzig sinnvolle Alternative zu einem spontanen Reboot/Bluescreen. Was mich allerdings grad ärgert:

Windows 10 informiert den Benutzer nicht offen darüber, wenn eine OOM-Situation auftritt und aus diesem Grund eine Anwendung (der Flusi) angeschossen wird.

Dass es ein OOM-Situation war erfährt man nur, wenn man nach dem plötzlichen "Crash to Desktop" aktiv ins Event-Log schaut und dort bei System eine Meldung vom Resource-Exhaustion-Detector erscheint. Idiotischerweise gibt es (IMHO anders als in früheren Windows-Versionen) kein Popup o.ä.

Windows scheint kein Overcommit zu erlauben. In meinem Fall war nicht der tatsächlich benutzte sondern nur der im Voraus von den Anwendungen angefragte (und noch ungenutzte) virtuelle Speicher erschöpft ("committed memory"/"zugesicherter Speicher").

In meinem Fall kann ich aktuell beobachten, dass der angefragte Speicher des Simulators relativ schnell (als zusätzliche Spalte im Detail-Tab des Task Managers einblendbar) und stetig wächst während der tatsächlich genutzte Speicher auf einem halbwegs stabilen bzw. nur langsam anwachsenden Niveau befindet. Dies kann ein Zeichen für Fehler in der Implementierung der Speicherverwaltung des Simulators bzw. eines Plugins sein. In diesem Fall ist es unwahrscheinlich, dass der reservierte Speicher wirklich benötigt wird.

Ein OOM tritt in diesem Fall unter Windows offenbar früher oder später unausweichlich ein. Wird die Ursache nicht behoben, sind keine langen Simulator-Sessions möglich. Idealerweise findet man die Ursache für das Speicherleck und meldet es dem Entwickler des betroffenen Plugins. Als vorübergehende Abhilfe (oder wenn keine Lösung möglich ist) lässt sich die Lebensdauer einer Simulator-Session dann allerdings verlängern indem einfach die Auslagerungsdatei vergrößert wird - da der Speicher gar nicht wirklich benötigt wird, sollte das dann eigentlich (wenn sich Windows optimal verhielte) keine negativen Auswirkungen auf die Performance haben.
 
Oben