![]() |
AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.
![]() |
AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.
Zitat:
|
AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.
So ein Mist, ich hatte gehofft das man wenigstens über AWE (was ja das 2 GB limit sprengen kann) einen 300 MB block hinbekommt der keine Paging Fault verursacht.
Das Working Set auch nicht funktioniert kann ich auch noch nicht nachvollziehen aber ich halte mich jetzt da mal raus. Mehr kann ich zu diesem Thema momentan nicht Beitragen. |
AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.
Warum hört niemand zu?
WorkingSet ist nur die nicht auslagerbare Menge, aber an der Gesamtmenge und der Verteilung ändert es rein garnichts. Alternativ kann man auch direkt physischen Speicher reserveren und einbinden ... das macht keinen großen Unterschied. (hier sagt man nur "ich will genau diesen Speicherblock nie auslagen", während das WorkingSet sagt "ich will minimal/maximal einen so großen Anteil meines gesamten Virtuellen nie auslagern") Auch andere Speicher-Erweterungen, wie AWE oder MMF, können zwar "zusätzlichen" Speicher reservieren, was nur "indirekt" mit der Belegung/Verteilung des virtuellen Speichers zu tun hat. (der Speicher ist extern reserviert/belegt und muß nicht im Virtuellen eingebunden sein, aber wenn man ihn benutzen will, dann muß er ebenfalls da rein und schon ist das Problem wieder da) Die einzige Lösung ist eine Defragmentierung des virtuellen Speichers. Aber das ist nicht so einfach, da man dafür alle Referenzen auf die zu verschiebenen Blöcke kennen muß (wo es aber niemals 100% sicher eine komplette Liste geben wird) um die Zeiger anschließend mit anpassen zu können. Oder man macht es wie die beim OutOfMemory. Dort wird gleich zu Programmstart ein kleiner Speicher "reserviert" (virtueller Bereich belegen, aber nicht mit physischem Speicher verbinden) und der wird vor Anzeige der Fehlermeldung freigegeben, dann der Speicher ist ja "voll", aber der Dialog braucht dennoch welchen, also hält man sich eine Lücke für den Notfall frei. Letzteres (OutOfMemory) entspricht in etwa dem, was hier mit dem "ich mache das Bitmap vor den restlichen Fenstern" gemacht wird, außer dass hier kein "großer" Block reserviert wird, für den praktisch immer genügend Speicher verfügbar ist. und in dem praktisch niemals existierenden Fall, wo der Speicher nicht doch ausreicht, dann wäre das komplette Programm sowieso nicht lauffähig. |
AW: Fehler: Für diesen Befehl ist nicht genügend Speicher verfügbar.
Zitat:
![]() Naja, ich klinke mich an dieser Stelle auch mal aus, der TE scheint ja sowieso seinen eigenen Weg gehen zu wollen :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz