首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用XP视觉主题/视觉样式会降低性能。

启用XP视觉主题/视觉样式会降低性能。
EN

Stack Overflow用户
提问于 2009-12-04 22:06:11
回答 2查看 1K关注 0票数 2

在尝试更新旧的C++Builder / Delphi应用程序的外观时,我启用了可视化主题(视觉风格),并对添加了多少性能热门主题感到惊讶。例如,对于我们的主要设置页面(由于开发时间和再培训成本的原因,我们现在不想重做的11-选项卡,200-控制怪物对话框):

  • 没有启用主题:~0.1秒来构造表单及其控件(由QueryPerformanceCounter度量),~0.9秒从单击菜单项到正在显示的表单(按秒表测量)。对于最终用户来说并不是很明显。
  • 启用主题:~0.6秒以构造窗体及其控件,从单击菜单项到显示窗体的~1.5秒。对最终用户来说非常明显。

我在Windows桌面和Windows7VM上都得到了类似的结果。

我意识到我可以采取一些步骤来改进这个特殊的情况(比如懒洋洋地加载对话框的选项卡或完全重新设计),但是对于主题来说,添加如此显著的性能命中是典型的吗?有什么简单的建议来避免这种性能的冲击吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-04 22:48:02

哇。我不确定我是否有过200个单一表格的控件。这里有几个建议。

  • 这可能是一种特殊情况,您希望在应用程序启动时创建一次对话框,并在需要时显示它,而不是按需创建对话框。
  • 我还将查看构造函数或OnShow事件中正在发生的事情。您是否填充了BeginUpdate/EndUpdate将是一个优势的列表?
  • 在OnResize事件或类似事件中,是否有任何代码会被多次触发,这些代码可以等到表单创建后才运行一次?
  • 你用的是什么样的控制?如果一种控制涂料的绘制速度特别慢,您可能可以将其替换为绘制得更快的控件。不过,这需要一些测试。
票数 3
EN

Stack Overflow用户

发布于 2009-12-08 21:17:50

您可以尝试在控件上打开双缓冲,我们有很多相同的行为,这种方法在某种程度上加快了速度,但是在采用应用程序主题化支持之前没有接近性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1849960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档