![]() |
"nicht genügend arbeitspeicher verfügbar"
heyho
ich hab nen kleines problem, und zwar habe ich in meinem system 2,5gb ram und zwei grafikkarten (eine gf 5700 mit 128mb und eine kleine matrox mit 4mb) drin und betreibe damit drei monitore. wenn ich nun ne weile arbeite und sich viele fenster anstauen (was öfters der fall ist) kommt irgendwann immer eines folgender probleme: - wenn ich ne anwedungstarten will, stürzt diese ab mit dem fehler "Nicht genügend arbeitsspeicher verfügbar" - zb im IE kann ich keine links mehr benutzen -> es passiert einfach nichts. - ab und zu spielt der ganze desktop verrückt und einige programme stürzen grundlos ab. -> speicherfehler und grafikkartenfehler kann ich beides ausschliesen und die probleme lassen sich IMMER damit beheben, indem ich einfach paar programme oder fenster zumache und es geht alles ganz normal. dabei ist weder der virtuelle noch der physikalische RAM voll. wie werd ich das los? weil das nervt ;) |
Re: "nicht genügend arbeitspeicher verfügbar"
das hört sich jetzt komisch an, aber wie sieht es mit dem Temp-Ordner aus?
|
Re: "nicht genügend arbeitspeicher verfügbar"
da ist auch noch genug platz drauf... ich hab nich so richtig ne ahnung mit was das zusammenhängen könnte.
kann es sein, das da irgend nen programm zecken macht? zb meine alte trillian 1.0 oder die winbar? |
Re: "nicht genügend arbeitspeicher verfügbar"
Was hast du für Ein Windows am laufen?
Win9x kommt sicher nicht mit so viel RAM klar... |
Re: "nicht genügend arbeitspeicher verfügbar"
winXP prof SP2 mit allen updates.
|
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
ich habe das selbe Problem; in meiner Kiste stecken 2 GB RAM. Ich vermute mittlerweile stark, dass es an den GDI-Objekten liegt. Du kannst dir im Taskmanager die GDI-Objekte-Spalte aktivieren und schauen, wieviele belegt sind. Ich konnte leider keine klaren Angaben darüber finden, wieviele bei Windows XP das Maximum sind, Microsoft tendiert eher zu "Da gibt's kein Maximum", aber es ist klar nachvollziehbar, dass ich erst wieder neue Anwendungen starten kann, sobald ich Anwendungen schließe, die viele GDI-Objekte (> 1000) haben. Kandidaten für viele GDI-Objekte sind bei mir iTunes (keine Ahnung warum...), der Explorer (ebenfalls keine Ahnung) und Opera (bei der Anzahl an Tabs nicht verwunderlich). Wenn du eine Lösung findest, wäre ich sehr daran interessiert. Vielleicht spielt auch der Einsatz von vmware eine Rolle? (Läuft bei mir permanent mit 1-2 VMs im Hintergrund) Ich spiele momentan mit dem Gedanken, zu Linux zu wechseln auf diesem Rechner (habe ansonsten nur Macs) und Windows nur noch in einer VM zu benutzen... Edit: Übrigens, ich benutze zwei Monitore (1600x1200 auf dem einen, 1280x1024 auf dem anderen, das ganze auf einer ATI x700). Die Symptome äußern sich ähnlich wie bei dir: Menüs öffnen sich einfach nicht, Symbolleisten werden weggelassen und Anwendungen starten nicht, bis ich nicht eine andere schließe. cu |
Re: "nicht genügend arbeitspeicher verfügbar"
gut ich schaue mal, ich hab allerdings ne höhere auflösung. 1920x1440 + 1600x1200 + 1280x1024 - aber das is scheinbar nicht ausschlaggebend.
aber mit den GDI objecten -> bei mir sind hohe kanidaten opera (2000) und tatsache der explorer (1000) und anschliesend winbar mit 600 nd ca. 10 andere mit jeweils 100-400. was genau hat es mit diesen GDI objecten auf sich? |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
die GDI-Objekte werden zum Zeichnen von allen möglichen Controls benötigt, soweit ich informiert bin. Das heißt, dass zum Beispiel jeder Button ein GDI-Objekt darstellt. Microsoft scheint sich nun mit dem Limit verschätzt zu haben (ich sag nur "nobody will ever need more than 640 kb of RAM") oder die entsprechenden Anwendungen haben Memory Leaks. In der Opera-Community wurden schon oft "Fix the GDI-Objects"-Rufe laut, ich weiß nicht, ob und wann sich da endlich was tut, und wieso der Explorer auch so ein Speicherloch hat...? cu |
Re: "nicht genügend arbeitspeicher verfügbar"
Hast du mal gezählt, aus wievielen Objekten(Windows) so ein Explorer besteht? ... das sind tausende ... dann ist die rechte Seite ein Internet Explorer (die Dateiliste und dieses WebAnsichtTeil sind Webseiten, da kommt och noch mal was zusammen) ... das sammelt sich halt ... Windows heißt ja nicht umsonst Windows (alles kleine Fenster ^^)
|
Re: "nicht genügend arbeitspeicher verfügbar"
nuja, aber wieso verbrät zb die winbar (winbar.nl) soviele (655)...
und wo liegt eigentlich schätzungsweise die grenze? und gibts da irgendwie patches dafür? |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
@himitsu: Klar, aber so ziemlich jede Website hat um einiges mehr und trotzdem ist das Ausmaß an GDI-Objekten in Opera nicht annährend so groß wie beim Explorer (verhältnismäßig). Außerdem sollte ich mich als Anwender um so etwas gar nicht kümmern müssen. Ich will mit so vielen Programmen gleichzeitig arbeiten können, wie es mein Arbeitsspeicher/Pagefile zulässt und nicht irgendwelche künstlichen/designtechnischen Beschränkungen... @easteregg: Ich denke, 100-500 sind normal für ein Programm mit umfangreicher GUI... Patches sind mir leider nicht bekannt, bin da aber wie gesagt sehr interessiert dran. cu |
Re: "nicht genügend arbeitspeicher verfügbar"
und die gesammtanzahl die maximal machbar ist?
das muss doch irgendwie möglich sein, das irgendwie zu erweitern oder sowas |
Re: "nicht genügend arbeitspeicher verfügbar"
die Gesamtzahl?
Na ja, da ihr doch die Probleme damit habt und wenn es wirklich damit zusammenhängt, dann zählt doch mal nach ;) wenn es sich bei maximal 65000 einpendelt ... wird's wohl noch ein 16-Bit-Überbleibsel handeln (ich glaub Timer kann man auch nur maximal 65xxx erstellen, da die TimerID anscheinend ein WORD ist) Erweitern? Klarr ... man müßte (wenn es sich z.B. um ein Word für die Speicherung handelt) nur ein LongWord/LongInt drauß machen. Also alle Lese-/Speicherzugriffe im gesamten Windows ändern und die Speicherplätze ... irgendwo müßten ja die zusätzlichen Bytes hin und wenn man schon mal dabei ist muß man halt Windows umschreiben, denn man müßte ja auch alle Records ändern, wo die ID drin gespeichert ist und demnach auch alles was dahinter in den Records steht und das wo diese Records wieder drin sind und natürlich auch alles was auf diese Records wieder zugreift und .... und ... und ... |
Re: "nicht genügend arbeitspeicher verfügbar"
äh ok, dann nix erweitern ;D
aber das liegt nie und nimmer bei 65335! das wird deutlich drunter sein, ich zähl einfach mal wenn ich den spaß das nächste mal habe! |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
ich habe gehört, dass es bei 10.000 liegt. Weiß aber nicht, warum das so sein soll oder woher die Behauptung kommt. cu |
Re: "nicht genügend arbeitspeicher verfügbar"
also ich habs grad mal wieder provoziert (opera geht überraschenderweise noch)
und ich hab derzeit ca. 12354 dieser objekte... (+- 200) ah das kommt ja an die 10000 ran... aber das is ja total bekloppt. wieso haben die sowas verzapft? ich mein das ist die BDS alleine mit knapp 4000 und paar explorer und IE fenster offen und schon sind die 10.000 voll. das is ja nichtmal richtig viel, so das ich sagen könnte ich bin nen extremuser - irgendwie versteh ich das grad nicht! |
Re: "nicht genügend arbeitspeicher verfügbar"
(64 * 1024) / 4 = 16384
Windows hat den Speicher in 64-KB-Blöcke aufgeteilt, man muß also immer in 64-KB-Blöcken den Speicher reservieren. Also bei einem statischns Array of Pointer für die zu verwaltenden Objekte wäre, wenn nur ein Speicherblock reserviert wird und sich nichts an der Reservierung ändern läßt, auf 16384 Objekte beschränkt ... 's wäre och ma 'ne Erklärung :roll: |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
das stimmt, allerdings soll es laut Microsoft ein 64 KB-Heap-Limit für GDI-Objekte/sonstige Resourcen seit Windows XP nicht mehr geben...? cu |
Re: "nicht genügend arbeitspeicher verfügbar"
was ja aber schienbar nicht stimmt. und ich hatte das auch mal unter win2k3 gehabt. also haben die das scheinbar doch nicht abgeschafft
|
Re: "nicht genügend arbeitspeicher verfügbar"
na ja, zwischen sollen und sein ist ja immer 'ne große Lücke, :roll:
aber es ist nunmal etwas auffällig ... 64K - ein paar Bytes für was anders = die anscheinende Grenze. Am Ende kann es auch ganz einfach nur eine falsche Konstante sein ... sozusagen Begrenzeung behoben, aber die MaxGDIObjects-Konstante steht noch auf dem Wert. M$ wird sich ja noch umgucken, wenn wenn irgendwann sehr viel mehr mit 64-Bit-Systemen arbeiten und die Teile noch voll aufrüsten ... in ein paar Jahren werden wir eh schon alleine 128 GB RAM für's BDS2096 benötigen :stupid: |
Re: "nicht genügend arbeitspeicher verfügbar"
Könnte sich ja mal jmd. die Mühe machen und ein Programm schreiben, welches GDI-Objekte (DCs?) einzeln reserviert, bis es nicht mehr geht und dann kann man ja zusammenzählen ;)
|
Re: "nicht genügend arbeitspeicher verfügbar"
Hallo!
Ich kann das nur bestätigen, habe das Selbe problem und wollte schon mal nen Thread schreiben: Ich habe auch 2 GB Speicher und auch 5 GB Virtual Memory auf der Systemplatte reserviert, jedoch kommt es oft vor, dass ich keine neuen Programme mehr öffnen kann, wenn ich ca 20 Applikationen geöffnet habe (Dienste und Hindergrundprozesse mal ausgeschlossen). Anders macht sich das ganze auch noch bemerkbar: Ich kann keine Menüs mehr öffnen. Naja, nervt ziemlich, aber sobald ich ein Programm beende, kann ich wieder was öffnen. Ich denke mal, dass der Speicher sehr ineffizient genutzt wird von Windows. Denn frei wäre der Speicher zwar, aber warscheinlich nicht in ausrechenden sequentiellen Böcken oder so. Naja, habe auch O&O Clever Cache in der 30 Tage Testzeit laufen, das hilft aber leider auch nicht recht viel. Naja, mal abwarten. Grüße Faux |
Re: "nicht genügend arbeitspeicher verfügbar"
Zitat:
|
Re: "nicht genügend arbeitspeicher verfügbar"
Zitat:
Mein Testprogramm kann auch maximal 10000 Edit-Controls erzeugen und dann kommt die Fehlermeldung: Win32-Fehler: Code 14 Wer's ausprobieren will: Ein Formular mit einem Editfeld (Inhalt '1000') + ein Button:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; x : TEdit; begin try for i := 1 to StrToInt(Edit1.text) do begin x := TEdit.Create(Self); x.Left := random(Self.Width); x.Top := random(Self.Height); x.Parent := Self; x.Visible := True; x.Text := IntToStr(Self.ControlCount) + '/'+IntToStr(x.Handle); Application.ProcessMessages; end; finally Edit1.BringToFront; Button1.BringToFront; end; end; |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
Zitat:
Die 16384 als gloables Limit klingen da schon realistischer. @Daniel G: Ja, aber die Zahl liegt bei frisch gestartetem iTunes bei ca 700, erhöht sich dann im Laufe der Zeit - ein Memory Leak? @Opera-Benutzer: In der Changelog von v8.52 stand, dass ein GDI-Leak behoben wurde. Vielleicht waren das einfach nicht alle Leaks, vielleicht ist es aber wirklich nicht Operas Schuld? cu |
Re: "nicht genügend arbeitspeicher verfügbar"
Zitat:
|
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
Zitat:
cu |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
hab' noch etwas gefunden: ![]() cu |
Re: "nicht genügend arbeitspeicher verfügbar"
Hab gerade mal geguckt, aber ein ExplorerFenstere braucht nur etwa 11 MB und knapp 120 GDIs ... 's geht also noch (von den GDIs her)
Man darf ja nicht vergessen, das die Explorer.exe für mehr als nur das eine Fenster zuständig ist ... die kümmert sich ja unter anderem noch um den Desktop und die Startleiste. Zitat:
|
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
Zitat:
cu |
Re: "nicht genügend arbeitspeicher verfügbar"
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
also 16384 als gloables Limit kann ich hier nicht bestätigen. Ich habe bei einem Kunden ein 6x19" TFT Displaypanel verbaut (Quadro NVS Grafikkarten) der hat damit überhauft keine Probleme. Pro Anwendung gibts auf jeden Fall ein Limit bei ~ 10000. Im Anhang hab ich nen kleines Testprogramm, Source ist ntürlich dabei. |
Re: "nicht genügend arbeitspeicher verfügbar"
Hi,
aha, interessant. Wieviel Anwendungen nutzt dein Kunde denn so und wie hoch ist die Anzahl der GDI-Objekte insgesamt? cu |
Re: "nicht genügend arbeitspeicher verfügbar"
hm stimmt, nachdem ich jetzt mal damit 7000 erstellt habe passiert nix, alles läuft noch normal.
wenn ich jetzt aber die bsd mit nur 3000 öffne wars das wieder... also brauchen wir nen neuen grund! |
Re: "nicht genügend arbeitspeicher verfügbar"
Vielleicht ist es ja ein Zusammenspiel mehrere Faktoren GDI+RAM+Irgendwas, oder so?
Zitat:
|
Re: "nicht genügend arbeitspeicher verfügbar"
könnte es vlt sein das es mit dem ram der grafikkarte zusamenhängt?
weil ich mein sone quadro hat ja einiges an speicher zur verfügung |
Re: "nicht genügend arbeitspeicher verfügbar"
"Normale" Anwendugen greifen ja nicht selber/direkt auf die GraKa zu ... da sollte der Speicher in der GraKa eigentlich immer gleich hoch sein.
Ein virtuelles Bild des Desktops, wo nur von jeder Anwendung das sichbare drin ist und das gelangt erst in die Karte (oder irgendwie so ._.) |
Re: "nicht genügend arbeitspeicher verfügbar"
Ich hab jetzt mal das GDI-Testprogramm mit der Standardeinstellung von 15000 gestartet, und bekam folgende Meldung:
Zitat:
|
Re: "nicht genügend arbeitspeicher verfügbar"
bei mir kam exakt das selbe ergebnis
|
Re: "nicht genügend arbeitspeicher verfügbar"
also 10.000 minus die paar vom Programm erstellten GIDs (welche wohl immer gleich sind) ^^
|
Re: "nicht genügend arbeitspeicher verfügbar"
jo, bei 9955 Objekten war mit dem Programm auch bei mir Schluss... Nebenbei laufen noch Miranda, Firefox, Winamp, Delphi 2005 und Foxit Reader...
512 MB mit 128 MB Graka.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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