Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-70704

Poor scrolling performance with new QtQuick TableView



    • Windows
    • 863bc570ca9d8f08b9fbedee903faf63622fac3c (qt/qtdeclarative/dev)


      I had some time to play with new TableView implementation in Qt 5.12 alpha and I have to say it finally feels like native, QtQuick's table view :]

      That being said one thing that is immediately noticed is extremely poor scrolling performance of the view itself.
      View takes up to about 2 seconds to catch up with 'top-to-bottom' scroll and is generally really choppy with fast mouse scrolls.
      This is not noticable when scrolling slowly.

      In my tests even silly ListView with 'repeater-as-columns' approach is visibly smoother than this.

      I'm feeding TableView with dummy QAbstractItemModel implementation returning constant 10000 rows, 15 columns and number '1' for all data() calls.
      Delegate is set to single Text element with textForm: Text.PlainText set, application is build in release mode.

      I fiddled with CodeXL a bit and I see many calls to QQuickTableViewPrivate::loadAndUnloadVisibleEdges(void), QQuickTableViewPrivate::updatePolish(void), QuickTableView::viewportMoved(class QFlags) in call stack but I lack required knowledge to say if it is a direct reason of the medicore performance. I'm attaching a screenshot I took from CodeXL - not sure it has any value to be honest.

      I'm filling this under 'Suggestion' as this is new technology and quirks are to be expected :]


        1. call-stack.png
          130 kB
        2. sysinfo.txt
          10 kB
        3. tableview_test_flick.zip
          4 kB
        4. tableview_test.zip
          4 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.



            richard Richard Moe Gustavsen
            izowiuz Jakub Narolewski
            0 Vote for this issue
            3 Start watching this issue



              Gerrit Reviews

                There are no open Gerrit changes