Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   fontdrvhost.exe / Windows 10 / Delphi 6 (https://www.delphipraxis.net/193628-fontdrvhost-exe-windows-10-delphi-6-a.html)

stalkingwolf 23. Aug 2017 09:52

fontdrvhost.exe / Windows 10 / Delphi 6
 
Moin!

Ein Kunde von uns rief uns an das eins unserer Programm eine hohe Systemauslastung unter Windows 10 hat.
Da der Rechner nicht der beste ist, lag die Auslastung bei teilweise 25% ( 1 Kernel ).
Bei unseren aktuellen Rechnern i5-7400 3GHZ liegt es bei 3-6%. Das ist eigentlich schon ziemlich viel.

Bei genauerer Untersuchung stellte sich raus das in dem Moment wo das Programm gestartet wird auch der Prozess fontdrvhost.exe in der Liste erscheint und er hat fast die gleiche Auslastung wie unser Programm.
Nach einigen Test stellt sich raus das dies nur mit einem voll gepatchen Windows 10 auftritt und dann habe ich einmal im Netz gesucht.

MS hat das GDI Font Rendering vom Kernel in den Userspace umgelagert um Exploits im Kernelspace zu verhindern.
Scheinbar löst das nun bei alten Delphi ( hier 6 ) aus und das nicht in allen Programmen.
Ich habe diverse getestet und komme nicht drauf wann es auftritt und wann nicht.

Jemand schon einmal darüber gestolpert?

himitsu 23. Aug 2017 11:40

AW: fontdrvhost.exe / Windows 10 / Delphi 6
 
Wird bei euch denn ganz oft irgendwelcher Text aktualisiert oder irgendwas gemalt?

Du kannst dich mit Debugger oder RemoteDebugger an euren Prozess hängen und versuchen rauszufinden wo euer Programm am Meisten vorbei kommt.
Bzw. einfach mit Profilern wie AQTime euer Programm untersuchen, an welchen Teilen die meiste CPU-Zeit verbraucht wird.

stalkingwolf 23. Aug 2017 14:15

AW: fontdrvhost.exe / Windows 10 / Delphi 6
 
In einer virtuellen Maschine von VMWare tritt das ganze nicht auf.
Wir können es nur an Windows 10 Versionen auf PCs reproduzieren.

Wir zeichnen nichts neu. In dem Fenster wo dies Auftritt passiert nichts, da es unser Login Screen ist und die Sachen erst ausgeführt werden, wenn sich der Benutzer angemeldet hat.

ich habe die Ursache gefunden. Wir haben ein nicht sichtbares transparentes Fenster für unsere Meldungen.
Dieses wird bei Bedarf eingeblendet und nach 5sek geschlossen.
In Windows 10 verursacht dieses Last .... warum auch immer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz