【问题标题】:Does "enable runtime themes" affect performance?“启用运行时主题”会影响性能吗?
【发布时间】:2015-06-15 08:19:11
【问题描述】:

我最近更改了项目选项中的“启用运行时主题”值,我想知道它的值是否会影响应用程序的性能,如果以哪种方式影响? 希望有人能澄清我这一点。

【问题讨论】:

  • 它对我的应用程序的性能没有任何影响。我不知道你的应用是做什么的,所以很难预测它对你是否重要。几乎可以肯定没关系。你有简介吗?
  • 您在衡量绩效吗?如果是这样,请更改设置,再次测量,然后比较结果以获得答案。如果你不是,那么我看不出这个问题的答案有什么意义。

标签: delphi themes delphi-2007


【解决方案1】:

“启用运行时主题”实际上是通过以下清单条目告诉 Windows Enable Visual Styling 的应用程序

    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>

您还可以使用不同的方法在较旧的 Delphi 版本中启用运行时主题。 Delphi 7 包含TXPManifest 组件,其效果与“启用运行时主题”相同。

启用运行时主题会影响应用程序的 GUI 部分。显然,绘制平面 Win 95 样式按钮应该比绘制渐变样式圆形 Win XP/Vista/Win7 按钮更高效,但正如 @DavidHeffernan 和 @TLama 所指出的那样,可能并非如此。这里的问题之一也是衡量实际性能,因为它可能取决于许多因素。因此,即使您进行了一些实际的性能分析,结果也可能存在高度偏差。这里真正的问题是非主题应用程序和主题应用程序(无论哪个更快)之间的 GUI 性能差异应该引起您的一些关注。

这部分的答案是否定的。首先,您可能对性能产生的任何影响都与 GUI 相关。其次,静态 Windows 应用程序 GUI 的要求远低于我们的计算机完全能够运行的任何 3D 游戏。而且由于 Windows XP 引入了视觉样式,当时计算机在处理样式(它在整个系统中都使用)方面没有任何性能问题,在现代硬件上运行的当今应用程序中的运行时主题性能只是浪费时间。

【讨论】:

  • 主题绘画比非主题绘画更快是合理的。前者被优化而后者没有被优化是合理的。
  • 很难说渲染没有主题的单个应用程序是否会提高其在主题环境中的性能。 DWM 使用硬件加速(通过 DirectX)进行渲染,因此它应该是高效的。问题在于这种环境渲染非主题应用程序有多困难。
  • @DavidHeffernan 是的,相反的情况似乎是合理的。主题还有另一个考虑因素,那就是 Windows 边框透明度,如果使用 Aero 主题,确实会对性能产生一些影响。
  • @TLama 我已经改写了答案。我回答的要点与主题应用程序是否会比非主题应用程序慢或相反无关,但事实上这确实不是 OP 应该关心的事情。
猜你喜欢
  • 2014-08-22
  • 1970-01-01
  • 2016-02-10
  • 2019-09-14
  • 2010-09-26
  • 1970-01-01
  • 2021-04-29
  • 2012-02-04
  • 2011-01-28
相关资源
最近更新 更多