FireMonkey-Leistungsprobleme

8

Ich verwende Delphi XE2 mit Update 4 Hotfix 1

Meine Standard-FMX-App sagt sehr langsam aus und bei Event friert es für eine Weile ein. ZB: wenn ich auf eine Schaltfläche klicke, bleibt die gesamte Anwendung für einige Sekunden stehen (aber nur für die erste Ausführung dieses Ereignisses). Also dachte ich, es könnte ein GPU-Problem sein und editierte meine Standard Dpr Datei als;

%Vor%

Jetzt funktioniert es wie erwartet ohne Probleme, aber die CPU-Auslastung ist wie zuvor (25% beim Bewegen der Maus)

Dann habe ich meinen Code als

geändert %Vor%

Jetzt läuft alles reibungslos, nur eine kleine Verzögerung in der Zeit bis zur CPU-Auslastung ist sehr niedrig (0 - 2%). (Deshalb brauche ich einen Firemonkey)

jetzt funktionieren alle Steuerelemente wie erwartet, außer Menüleiste, die obigen Einstellungen werden nicht auf die Menüleiste angewendet und sie funktioniert mit dem Standardverhalten (die ganze App bleibt für einige Sekunden stehen).

Was kann ich tun, um dieses Problem zu umgehen?

    
VibeeshanRC 04.06.2012, 07:58
quelle

1 Antwort

1

Das eigentliche Problem war mit einigen Standardeinstellungen von FireMonkey Effects und FireMonkeys

default GlobalUseDirect2D = true , während GlobalUseHWEffects := true der eigentliche Grund für das Leistungsproblem ist, da beide CPUs und GPUs in meinem Rechner verwendet werden. Machen Sie einen davon zu false. Ich empfehle Ihnen, GlobalUseDirect2D = false und GlobalUseHWEffects := true für weniger CPU-Nutzung zu verwenden.

And now you will be also able to get improved fonts (best ever firemonkey can generate)

Nicht alle Kunden haben High-End-Grafik-GPUs

Ich benutze einen Intel Mobile-Grafikchip, also glaube ich nicht, dass ich alle Möglichkeiten habe, alle Fire-monkey-Effekte zu unterstützen. Folgen Sie dem Code und Kommentar in FMX.Types

%Vor%

aber ich kann nicht verstehen, warum sie es standardmäßig false gemacht haben (das Aktivieren und Deaktivieren hängt also von den Fähigkeiten des Client-GPU ab)

Mit GlobalDisableFocusEffect können Sie keine Effekte mehr verwenden (zB: outergloweffect ) ... aber wieder ist diese Aussage immer noch nicht wahr ....

von GlobalDisableFocusEffect nicht alle Effekte sind deaktiviert,

zum Beispiel

  1. Tinnergloweffect in Button-Stil im Windows-Stil ist der Grund für das Einfrieren
  2. Tinnergloweffect in headeritemstyle in Dark style ist der Grund frieren.

und es gibt Tonnen von Beispiel ...

In meinem Szenario war ich gezwungen, alle Effekte aus dem Stil zu entfernen., Blend, Dunkle Stile arbeiten viel besser, weil sie weniger TEeffects (?) verwenden, aber jetzt habe ich eine bessere GUI mit besserer Performance (I Mischfarben und dunkle Stile wirken cooler als native UIs)

    
VibeeshanRC 04.06.2012, 13:06
quelle

Tags und Links