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 ; 

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

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

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

  0

Это действительно проблема во всплывающем меню, а в меню в меню всплывающее меню. 04 июн. 122012-06-04 11:26:15

  0

Извините за ошибку, все это будет работать только с темной темой, а не с темой windows 04 июн. 122012-06-04 11:52:05

1

Реальная проблема была с некоторыми FireMonkey эффекты и настройки по умолчанию Firemonkeys

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

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

Не все клиенты будут иметь высокий конец Графический графические процессоры

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

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

, но я не могу понять, почему они сделали это ложные по умолчанию. (так включения и отключения зависит от возможностей GPU клиента)

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

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

, например

  1. Tinnergloweffect в стиле кнопки в стиле окна является причиной для замораживания
  2. Tinnergloweffect в headeritemstyle в темном стиле является причина замерзание.

и могут быть тонны, например ...

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

  0

приведенный выше ответ будет только для тех, у кого проблемы с исправлением 1, но все же я чувствую «GlobalUseDirect2D = true, а GlobalUseHWEffects: = true» это проблема для всех, поскольку она использует как GPU, так и CPU, исправьте меня, если я ошибаюсь, это мой вывод из моих тестов в моем Intel GPU. 04 июн. 122012-06-04 13:16:53

  0

Вы отправили QC? 04 июн. 122012-06-04 19:51:28

  0

@RBA, еще нет, я не думаю, что они воспримут это как ошибку. 05 июн. 122012-06-05 08:10:42