2015-06-15 36 views
5

我最近在项目选项中更改了“启用运行时主题”值,我在想它的值是否会影响应用程序的性能,以及在哪种情况下? 希望有人能澄清我这一点。 enter image description here“启用运行时主题”会影响性能吗?

+0

它对我的应用程序的性能没有任何影响。我不知道你的应用程序做了什么,因此很难预测它对你是否重要。几乎肯定没关系。你有个人资料吗? –

+0

你在测量性能吗?如果是,则更改设置,再次测量,并比较结果以得到答案。如果你不是,那么我不知道这个问题的答案如何。 –

回答

8

什么“启用运行的主题”实际上做的是通过以下清单项告诉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引入了视觉样式,并且当时的计算机在处理样式时没有任何性能问题(它在整个系统中使用),而关于在现代硬件上运行的应用程序中的运行时主题性能只是浪费时间。

+2

即使主题绘画比非主题绘画更快,这也是合理的。前者是优化的,后者不是。 –

+1

很难说在没有主题的情况下渲染单个应用程序是否会改善其在主题环境中的性能。 DWM使用硬件加速(通过DirectX)进行渲染,所以它应该是高效的。问题是这个环境渲染非主题应用程序有多困难。 – TLama

+0

@DavidHeffernan是的,这是有道理的,它是相反的。对于主题还有另一个考虑因素,那就是Windows边框透明度,如果使用Aero主题,确实会对性能产生一定的影响。 –

相关问题