gpt4 book ai didi

delphi - FireMonkey 性能问题

转载 作者:行者123 更新时间:2023-12-03 14:44:36 25 4
gpt4 key购买 nike

我正在使用带有更新 4 修补程序 1 的 Delphi XE2

我的默认 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 使用率和以前一样(移动鼠标时为 25%)

然后我将代码修改为

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

现在一切工作都很顺利,启动时间只有一点点延迟,CPU 使用率非常低 (0 - 2%)。(这就是我需要 Firemonkey 的原因)

现在除菜单栏外,所有控件都按预期工作,上述设置不适用于菜单栏,并且它以默认行为工作(整个应用程序卡住几秒钟)。

我能做些什么来克服这个问题。

最佳答案

真正的问题是一些 Firemonkey 效果和 Firemonkeys 默认设置

default GlobalUseDirect2D = trueGlobalUseHWEffects := true 是性能问题的真正原因,启用两者是在我的机器中同时使用 CPU 和 GPU。因此,将其中之一他们是假的。我建议您使用 GlobalUseDirect2D = falseGlobalUseHWEffects := true 来减少 CPU 的使用。

现在您还可以获得改进的字体(firemonkey 可以生成的最好的字体)

并非所有客户都会拥有高端图形 GPU

我使用的是英特尔移动图形芯片,因此我认为我的芯片不具备支持所有 firemonkey 效果的所有功能。可以在 FMX.Types 中看到以下代码和注释

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

但我不明白为什么他们默认将其设置为false。(因此启用和禁用取决于客户端 GPU 功能)

通过GlobalDisableFocusEffect,您将无法再使用效果(例如:outergloweffect)......但同样,此声明仍然不再正确......

通过GlobalDisableFocusEffect,并非所有效果都被禁用,

例如

  1. windows风格中按钮风格的Tinnerglow效果是卡住的原因
  2. 深色风格的 headeritemstyle 中的 Tinnerglow 效果是卡住的原因。

可能有很多例子......

所以在我的场景中,我被迫删除样式中的所有效果..,混合,深色样式工作得更好,因为它们使用更少的TEffects(?),但现在我拥有更好的GUI和更好的性能(我感觉混合和深色风格看起来比原生 UI 更酷)

关于delphi - FireMonkey 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com