ich habe von kollegen Feedbacks erhalten, die es hinweisen, dass meine OpenGL-Anwendung unter Vista immer wieder Problem auftritt (Not Responding). Deshalb habe ich jetzt Win7 installiert und sie ausprobiert. Es läuft eigentlich unter XP alles wunderbar. Aber unter win7 steigt sofort die CPU-Auslastung auf 70% wenn ich die Anwendung starte. Desweiteren friert die Anwendung nach ein paar Sekunden, wenn Maus sich auf dem Anwendungsfester nicht bewegt. Nach ein paar Versuch habe ich festgestellt, dass das Problem genau bei OnIdle Eventhandler auftritt. Ich habe den Handler deaktiviert und anstatt dessen ein Timer eingestellt, um raus zu finden, ob ein Fehler in OpenGL-Code oder diesen EventHandler selbst dieses Problem verursacht. Das Ergebnis: es funktioniert einwandfrei genau wie unter XP (außer Geschwendigkeit und CPU-Auslastung - immer noch auf 70% was unter XP nicht mal 10% ist)
Jetzt ist die Frage, hat jemand schon mal dieses Problem kennengelernt? gibt es eine andere Möglichkeit bzw. alternative gegen IdleHandler ?
Zuletzt geändert von BawerPower am Do Aug 12, 2010 21:29, insgesamt 1-mal geändert.
Done:= false; repeat //rendern und so Application.ProcessMessages; until Done;
sharkman
Danke für schnelle Antwort. Das Problem besteht immer noch, nur CPU-Auslastung ist jetzt zwischen 50%-60%, und die Anwendung friert nicht nach paar Sekunden, sondern nach ein paar Minuten.
Das liegt nicht am IdleHandler, hantierst du mit Threads / hast du sonst noch irgendwelche zeitaufwändigen Sachen drin? Evtl hilft auch ein Profiler.
klar, sind viele Threads drin, die sind komplett synchronisiert miteinander, und das Problem tritt schon beim User-Anmeldung auf, dh. bevor noch keine einzige Thread erstellt / ausgeführt wird. Aufwendige-Code ist da sicher nicht, da erst nach dem Klick auf ein Button ganze Threads usw... im Einsatz sind.
Es ist mir auch was eingefallen. Nachdem Start, bewegt sich App-Fenster selbst ein mal in jede 30 sekunden (mal nach rechts dann wieder zürück:)) Nach dieser Bewegung kommt die Meldung), genau dasgleiche passiert im unteren Taskleiste, wo App-Symbol ist.
Das komische ist es, dass OpenGL wirklich weiter rendert, nur App-Fenster reagiert nicht mehr. Wie gesagt wenn ich ein Timer nehme, funktiniert wieder das ganze, wenn ich sie in OnIdle ausführe passiert das.
Über die Empfehlung auf einer OpenSource-Profiler wäre ich auch dankbar.
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.