Вопрос по – Проблемы с производительностью FireMonkey

8

Я использую Delphi XE2 с обновлением 4 исправления 1

Мое приложение FMX по умолчанию работает очень медленно, а в случае, если оно какое-то время зависает. Например: когда я нажимаю на кнопку, все приложение останавливается на несколько секунд (но только для первого выполнения этого события). Так что я подумал, что это может быть проблема с графическим процессором и отредактировал мой по умолчаниюDpr файл как;

uses
  FMX.Forms,  fmx.Types,..

{$R *.res}

begin
  Application.Initialize;

  GlobalUseHWEffects := False   ;
  GlobalUseDirect2D := False  ;
  GlobalUseDirect2DSoftware := False    ;
  GlobalUseGDIPlusClearType := True    ;
  GlobalDisableFocusEffect := True   ;

  Application.CreateForm(...);
  Application.Run;
end.

Теперь он работает, как и ожидалось, без проблем, но загрузка процессора такая же, как и раньше (25% при перемещении мыши)

Затем я изменил свой код как

  GlobalUseHWEffects := true  ;
  GlobalUseDirect2D := False  ;
  GlobalUseDirect2DSoftware := False    ;
  GlobalUseGDIPlusClearType := True    ;
  GlobalDisableFocusEffect := True   ;

Теперь все работает гладко, только небольшая задержка во время настройки и использование процессора очень низкое (0 - 2%). (Вот почему мне нужен Firemonkey)

теперь все элементы управления работают должным образом, кроме Menubar, указанные выше настройки не применяются к menubar и работают с поведением по умолчанию (все приложение зависает на несколько секунд).

Что я могу сделать, чтобы преодолеть эту проблему.

Извините за ошибку, все это будет работать только с темной темой, а не с темой Windows. VibeeshanRC
это действительно проблема во всплывающем меню, а строки меню используют всплывающее меню. VibeeshanRC

Ваш Ответ

1   ответ
1

The real problem was with some firemonkey Effects and Firemonkeys default settings

дефолтGlobalUseDirect2D = true в то время какGlobalUseHWEffects := true  является реальной причиной проблем с производительностью, позволяя использовать оба процессора и графический процессор на моей машине. Так что сделайте один из них ложным. Я рекомендую вам сделатьGlobalUseDirect2D = false а такжеGlobalUseHWEffects := true для меньшего использования процессора.

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

Not all the customers will have high end Graphic GPUs

Я использую графический чип Intel Mobile, поэтому я не думаю, что у моего чипа будут все возможности для поддержки всех эффектов FireMonkey. следуяcode and comment можно увидеть в FMX. Типы

// On low-end hardware or mobile bitmap effects are slowly
  GlobalDisableFocusEffect: Boolean = False;

но я не могу понять, почему они сделали этоfalse по умолчанию (поэтому включение и отключение зависит от возможностей клиентского графического процессора)

отGlobalDisableFocusEffect вы больше не сможете использовать эффекты (например:outergloweffect ) .... но опять же это утверждение все еще не верно ....

отGlobalDisableFocusEffect не все эффекты отключены,

например

Tinnergloweffect in button style in windows style is the reason for freezing Tinnergloweffect in headeritemstyle in Dark style is the reason freezing.

и может быть тонны примера ...

Так что в моем сценарии я был вынужден удалить все эффекты из стиля ..., Blend, темные стили работают намного лучше, потому что они используют меньше TEffects (?), Но теперь у меня лучший графический интерфейс с лучшей производительностью (я чувствую, что Blend и Темные стили выглядят класснее, чем родные, как пользовательский интерфейс)

Вы разместили КК?
@RBA, пока нет, я не думаю, что они воспримут это как ошибку. VibeeshanRC
ответ выше только для тех, у кого все еще есть проблемы с исправлением 1, но я все еще чувствую & quot; GlobalUseDirect2D = true, в то время как GlobalUseHWEffects: = true & quot; Это проблема для всех, так как она использует как GPU, так и CPU, поправьте меня, если я ошибаюсь, это мой вывод из моих тестов в моем Intel GPU. VibeeshanRC

Похожие вопросы