在尝试使旧的 C++Builder / Delphi 应用程序的外观现代化时,我启用了视觉主题(视觉样式),并且对添加了多少性能影响主题感到惊讶。例如,对于我们的主要设置页面(一个 11 个选项卡、200 个控件的怪物对话框,由于开发时间和再培训成本的原因,我们现在不想重做):
- 未启用主题:构造表单及其控件约 0.1 秒(由 QueryPerformanceCounter 测量),从单击菜单项到显示表单约 0.9 秒(由秒表测量)。对最终用户来说并不是很明显。
- 启用主题:~0.6 秒构建表单及其控件,~1.5 秒从单击菜单项到显示表单。对最终用户来说非常明显。
我在 Windows XP 桌面和 Windows 7 VM 上都得到了类似的结果。
我意识到我可以采取一些措施来改进这种特殊情况(例如延迟加载对话框的选项卡或完全重新设计它),但是主题通常会增加如此明显的性能影响吗?有什么简单的建议可以避免这种性能损失吗?