Entwickler-Ecke
Off Topic - Maximale Anzahl der WindowsHandles
retnyg - Do 27.01.05 17:20
Titel: Maximale Anzahl der WindowsHandles
hmm strange... also laut task manager sind 600 MB ram voll, und 400MB frei.
Wenn ich jetzt aber z.b. ein neues Explorerfenster aufmache, taucht die ordnerleiste (links) nicht mehr auf, wenn ich eine neue nachricht im mailproggie erstellen will kommt kein Fenster, wenn ich ein WinRar archiv öffne, kommt zwar winrar, das fenster unten was die Inhalte normal beinhaltet ist aber nur eine graue Fläche.
wenn ich irgendein Fenster schliesse, funktioniert das dann aber - aber nur bis zum nächsten fenster.
sieht irgendwie aus als hätte ich die maximale anzahl an Windowshandle's erreicht oder so...gibts da ein limit ?
retnyg - Do 27.01.05 19:04
habe den titel geändert... Mods verschiebt das bitte nach winApi oder so :P
UGrohne - Do 27.01.05 19:12
Hat ja eigentlich nicht direkt was mit Programmierung zu tun, sondern eher mit Windows. Oder hast Du ein Problem mit einem Programm von Dir? Denn irgendwie versteh ich Dein Problem noch nicht vollständig.
retnyg - Do 27.01.05 19:15
das problem ist dass zwar noch genug speicher vorhanden ist, aber beim erstellen eines neuen fensters nur eine graue oder weisse fläche kommt. wenn ich allerdings vor der erstellung eines neuen Fensters ein anderes schliesse, geht es. das nächste geht dann halt wieder nicht, bis ich wieder eines schliesse...
edit: ich hab derzeit massig fenster offen, 11 explorer, 11 firefox, 8 winrar, 5 cmd, 6 notepad usw
toms - Do 27.01.05 19:21
Dann schliesse doch einige Fenster, Programme. So hat man doch keine Uebersicht....
retnyg - Do 27.01.05 20:02
dass ich das machen kann ist mir schon klar, mich würde interessieren an was es liegen kann.
ich bin nun mal ein chaot, aufm desktop siehts nicht anders aus wie in der wohnung :mrgreen:
fritzfan - Do 29.09.05 11:12
Titel: Re: Maximale Anzahl der WindowsHandles
retnyg hat folgendes geschrieben: |
sieht irgendwie aus als hätte ich die maximale anzahl an Windowshandle's erreicht oder so...gibts da ein limit ? |
Also die letze Frage interessiert mich dann aber doch brennend. Offenbar scheint es eine Grenze bei ca. 10000 Fenstern zu geben.
Ich habe das Problem, daß ich zur Bestimmung von Seitenumbrüchen bei vielstseitigen (800-1000 Blatt) Textdokumenten durchaus an dieser Grenze anschlage. Das größte Problem dabei ist, daß vorher keinerlei Warnung erfolgt. bei GlobalMemoryStatus ist alles im grünen Bereich und dann kommt ein OutOfMemory (Errorcode 14) beim CreateWindow.
BenBE - Do 29.09.05 13:06
Windows hat so die magischen Zahlen 2GB Anwendungsspeicher (ab 2K oder XP glaube sogar 3), 4K Speicher-Segmente (für die Verwaltung) und 64K Handles. Was heißt, dass Windows seine Grenzen ziemlich niedrig gewählt hat ;-) Wichtig ist aber, dass Handles immerhin Ressourcen darstellen und man diese nicht verschwenden sollte, da sie irgendwann zur Neige gehen.
Soweit ich das mal gehört hab, ist das bei Windows mit ca. 65536 Handles (für Image-Listen) der Fall. Für Fenster sollte dieser Wert auch in dieser Größenordnung angesiedelt sein. Bei Prozessen ist allerdings IMHO schon weit darunter Schluss ...
retnyg - Sa 29.10.05 02:51
ich hab mal etwas recherchiert, und dabei rausgefunden dass man die anzahl der handles im taskmanager anzeigen lassen kann. wenn ich richtig gezählt habe, ist ca. bei 16000 schluss!
alles was darüber hinausgeht führt dazu dass anwendungen sich nicht mehr wie gewohnt verhalten.
wenn man so handle-fresser wie firefox verwendet, ist die wahrscheinlichkeit, dass einem zuerst die handles und dann erst der arbeitsspeicher ausgeht, relativ hoch.
hoffentlich ist das bei xp64 bit anders, was nützen einem 8 gbyte ram, ohne verfügbare handles ? :lol:
Delete - Sa 29.10.05 03:46
Nicht nur Fenster haben Handles, auch GDI Objekte und Kernel Objekte, wie Dateien, Mutexe, Semaphore, Threads usw. Unter Consumer Windows war da bei max. DWORD Schluss. Wo die Grenze bei Windows NT ff. liegt weiß ich nicht.
retnyg - Sa 29.10.05 03:59
Luckie hat folgendes geschrieben: |
Nicht nur Fenster haben Handles, auch GDI Objekte und Kernel Objekte, wie Dateien, Mutexe, Semaphore, Threads usw. Unter Consumer Windows war da bei max. DWORD Schluss. Wo die Grenze bei Windows NT ff. liegt weiß ich nicht. |
jo, halt alles was beim funktionsaufruf ein thandle zurückliefert.
von daher sind die 16.000 weit unterdimensioniert.
es ist schon fast peinlich ^^
aber ich denke (oder hoffe) mal das bei w2k3 server mehr handles verfügbar sind
Delete - Sa 29.10.05 05:52
Ich denke mal, da wird sich Microsoft schon was bei gedacht haben bzw. es wird eventuell architekturbedingt sein.
Btw. von was für einem Betriebssystem reden wir eigentlich?
retnyg - Sa 29.10.05 12:21
Luckie hat folgendes geschrieben: |
Ich denke mal, da wird sich Microsoft schon was bei gedacht haben bzw. es wird eventuell architekturbedingt sein. |
die werden sich gedacht haben: das reicht sicher. so wie man mal dachte dass 64k hauptspeicher für alles reichen o0
Luckie hat folgendes geschrieben: |
Btw. von was für einem Betriebssystem reden wir eigentlich? |
wir reden von "XP SP1 32 bit", welches nach einem neustart schon über 5000 handles offen hat (bei ner 1GB kiste).
also ein drittel der verfügbaren handleressourcen werden schon von svchost, winlogon und co verschluckt.
da fällt mir ein, auf
http://www.sysinternals.com/blog gibts nen artikel wie man die dienste alle abschalten kann...
BenBE - Sa 29.10.05 13:24
16000 glaub ich nicht ;-) Hatte neulich erst (wegen eines kleinen Fehlers) im Explorer (allein schon) >120000 Handles offen. Der Rechner lief zwar nur noch schlecht, als Recht, aber er lief noch (bis er kurz danach bei der Aufforderung neuzustarten abstürzte ;-)) ...
Insgesamt schätz ich mal, waren zu diesem Zeitpunkt ~190000 Handles offen.
Stefan.Buchholtz - Mo 31.10.05 11:22
Das glaube ich auch nicht. Bei Windows 95 Abkömmlingen war die Anzahl der Handles auf 65536 beschränkt, aber bei allem, was auf den NT-Kernel aufsetzt meines Wissens nicht mehr.
Stefan
Stefan.Buchholtz - Mo 31.10.05 12:36
Das ist weniger als ich in Erinnerung hatte. Möglicherweise haben die von NT abstammenden Windows-Versionen die gleiche Beschränkung für einen einzelnen Prozess -also 16364 Handles für jedes Programm statt für alle Programme zusammengenommen.
Stefan
Heiko - Mo 31.10.05 14:50
Hoffentlich besitzt dann Vista mehr, denn da wird man ja mehr Dateien verwalten können (müssen), wodurch man auch mehr Proggis gleichzeitig laufen hat. Und da wäre die Beschränkung irgendwann lästig.
Delete - Di 01.11.05 02:03
Windows kann definitiv mehr als 16.000 Windows Handles, ich denke mal ihm werden an anderer Stelle die Ressourcen ausgehen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!