我使用的是Delphi XE2和更新4热修复1
我的默认FMX应用程序是非常缓慢和事件,它是冻结了一段时间。当我点击一个按钮时,整个应用程序会冻结几秒钟(但只限于该事件的第一次执行)。因此,我认为这可能是一个GPU问题,并编辑了我的默认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.现在它和我预期的一样工作,没有任何问题,但是CPU的使用情况和以前一样(移动鼠标时使用的CPU占25%)。
然后,我将我的代码修改为
GlobalUseHWEffects := true ;
GlobalUseDirect2D := False ;
GlobalUseDirect2DSoftware := False ;
GlobalUseGDIPlusClearType := True ;
GlobalDisableFocusEffect := True ;现在一切都很顺利,只有很小的延迟时间和CPU使用率很低(0 -2%)。(这就是为什么我需要火猴)
现在,除了menubar之外,所有控件都按预期工作,上面的设置不应用于Menubar,它使用的是默认行为(整个应用程序冻结了几秒钟)。
我能做些什么来克服这个问题。
发布于 2012-06-04 13:06:08
真正的问题是一些火猴效应和火猴默认设置
默认的GlobalUseDirect2D = true虽然GlobalUseHWEffects := true是性能问题的真正原因,但启用两者都是在我的machine.So中同时使用CPU和GPU使它们之一变为false。我建议您使用GlobalUseDirect2D = false和GlobalUseHWEffects := true来减少CPU的使用。
And now you will be also able to get improved fonts (best ever firemonkey can generate)
并不是所有的客户都有高端图形GPU
我正在使用英特尔移动图形芯片,所以我不认为我的芯片将有所有的能力,以支持所有的火猴效应。在代码和注释之后,可以在FMX.Types中看到
// On low-end hardware or mobile bitmap effects are slowly
GlobalDisableFocusEffect: Boolean = False;但是我不明白为什么默认情况下他们会使它成为假。(所以启用和禁用取决于客户端GPU功能)
通过GlobalDisableFocusEffect,您将不再能够使用效果(例如:outergloweffect ).但这句话仍然不再是真的.
通过GlobalDisableFocusEffect,并不是所有的效果都被禁用,
例如
窗口样式中的
可能有很多例子..。
所以在我的场景中,我不得不删除风格中的所有效果.,混合风格,黑暗风格工作得更好,因为它们使用的TEffects (?)更少,但是现在我有了一个性能更好的图形用户界面(我觉得混合风格和黑暗风格看起来比UI之类的本地风格更酷)。
https://stackoverflow.com/questions/10878064
复制相似问题