代码之家  ›  专栏  ›  技术社区  ›  Sergey Borodin

Qt QTableView性能60 fps

  •  0
  • Sergey Borodin  · 技术社区  · 1 年前

    我们遇到了的性能问题 QTableView

    用例 :

    1. 用户希望能够打开多达10-30个带有表格数据的窗口(我们通过互联网接收数据)
    2. 每个表可以有 0到13000行 关于 100列 具有自己的筛选和排序参数
    3. 表中的数据可以经常更新(每行可以有 每秒100-1000次更新 )

    我们已经做了什么:

    1. 在分离的线程中接收和处理(排序/过滤)的所有数据。
    2. QTableView 具有的更新限制 60帧/秒 。这是通过 数据已更改 只为视口发出信号,只为更改的单元格发出信号。

    问题 : 即使在探查器(英特尔VTune)中进行了所有优化,我们也会看到以下20个打开窗口的图片: enter image description here 从图中可以看出,主线程70%以上的时间都被渲染所占用 QTableView(QWidgetPrivate) 。 同时,应用程序对用户操作的响应能力显著降低。 测试是在功能强大的硬件上进行的——英特尔酷睿i7-12700KF,带ssd和64 Gb RAM。 有人知道如何加快QTableView的渲染速度吗? 也许唯一的方法是使用绘画覆盖的自定义视图实现?

    0 回复  |  直到 1 年前
    推荐文章