gpt4 book ai didi

performance - Delphi:如何诊断缓慢的 UI?

转载 作者:行者123 更新时间:2023-12-03 18:08:51 25 4
gpt4 key购买 nike

我有一个表单,您可以假装它的布局类似于 Windows 资源管理器:

  • 面板在左边
  • 分离器
  • 客户面板

    +------------+#+-----------------------+
    | |#| |
    | |#| |
    | |#| |
    | |#| |
    | Left |#| Client |
    | |#| |
    | |#| |
    | |#| |
    | |#| |
    | |#| |
    +------------+#+-----------------------+
    ^
    |
    +----splitter

左侧面板和客户区面板都有丰富的控件。

问题是使用分离器非常缓慢。我希望现代 2 GHz 计算机可以像人类插入鼠标一样快地重新显示表格。但肯定不是这样,大约需要 200-300 ms 才能完全重新调整表单。

表单上有大约 100 个可视控件,没有代码,也没有自定义控件。

我如何着手追踪缓慢的原因?

最佳答案

使用分析器。埃里克格兰奇的 Sampling Profiler很好。自动化 QA AQtime非常好。

这很可能是由于随着控件调整其布局和大小而重复调整大小和重新绘制。大量嵌套或大量控件通常会导致问题。您可以通过重写 AlignControls 并在每次拆分器移动时只调整一次对齐方式来避免这种情况,但这将涉及相当多的工作。

或者,TSplitter 有一个 ResizeStyle 属性,该属性控制控件是立即移动还是在表单上对一行进行异或运算,并且控件仅在最后更新。视觉效果不佳,但工作量少得多。

关于performance - Delphi:如何诊断缓慢的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2610499/

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