Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Performance issue in Qt5.6.3 based GUI
Qt 6.11 is out! See what's new in the release blog

Performance issue in Qt5.6.3 based GUI

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
6 Posts 3 Posters 843 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    nikhil30
    wrote on last edited by
    #1

    Hi,
    I am working on Qt GUI using qml based on Qt 5..6.3 running on iMX6 Solo X custom embedded platform. I have used c++ in backend.
    I observed that GUI performance is sluggish when i scrolls the screen or when i use slider for backlight control (backlight gets updated and slider gets updated later after 2 seconds )
    I have used loader to load the qmls as per user request.
    I have attached scrollbar to Listview which displays the list.

    1. Does replacing the Listview with repeaters+column+flickable will improve the GUI performance..?
    2. Is there any way to render the GUI faster...?

    Please help me to improve the GUI performance...?

    1 Reply Last reply
    0
    • P Offline
      P Offline
      Padlock
      wrote on last edited by Padlock
      #2

      My first guess would be that the model is too big (many columns, many rows) or that the rendering process is too complicated (maybe big images, smoothing etc) for this platform to handle in realtime.

      I don't know if that embedded platform can swap but if it was Linux or Windows it could ran out of RAM.

      For the rendering process look at QML properties like antialiasing, scale, smooth, clip etc.

      1 Reply Last reply
      0
      • N Offline
        N Offline
        nikhil30
        wrote on last edited by
        #3

        Hi,
        Thanks for the reply.

        A] I already replaced all background images with background colors for most of the items, only using symbols/icons images if needed.

        Also as suggested, i set following properties for all items in qml:-

        1. anti-aliasing :- false
        2. clip : false
        3. Positioning of items using anchors (w.r.t parent) instead of x,y,width/height
        4. smooth: false

        Now qml takes less time to load,but while scrolling the list (50 elements), it is still sluggish.

        How to improve the scrolling of list faster...?

        B] Also In another qml, i am using ColorAnimation to change color values (flashing effect) . I observed color transitions takes place slowly (even with duration set to 100ms or less) and screen become less responsive when animation runs and cpu utilization shoots to more than 98% (luckily it does get hanged or crashed)

        i tried replacing ColorAnimation with opacityAnimator (as per https://doc.qt.io/qt-5/qml-qtquick-opacityanimator.html , it runs in render thread instead of GUI thread).

        Is there any way to run animation in qml in another thread to improve performance...?

        J.HilkJ 1 Reply Last reply
        0
        • N nikhil30

          Hi,
          Thanks for the reply.

          A] I already replaced all background images with background colors for most of the items, only using symbols/icons images if needed.

          Also as suggested, i set following properties for all items in qml:-

          1. anti-aliasing :- false
          2. clip : false
          3. Positioning of items using anchors (w.r.t parent) instead of x,y,width/height
          4. smooth: false

          Now qml takes less time to load,but while scrolling the list (50 elements), it is still sluggish.

          How to improve the scrolling of list faster...?

          B] Also In another qml, i am using ColorAnimation to change color values (flashing effect) . I observed color transitions takes place slowly (even with duration set to 100ms or less) and screen become less responsive when animation runs and cpu utilization shoots to more than 98% (luckily it does get hanged or crashed)

          i tried replacing ColorAnimation with opacityAnimator (as per https://doc.qt.io/qt-5/qml-qtquick-opacityanimator.html , it runs in render thread instead of GUI thread).

          Is there any way to run animation in qml in another thread to improve performance...?

          J.HilkJ Offline
          J.HilkJ Offline
          J.Hilk
          Moderators
          wrote on last edited by
          #4

          @nikhil30

          have you tried to place your delegate of that ListView into Loaders and only set those active that are actually on display?

          I noticed increased performance when I did that in one of my applications

          Is there any way to run animation in qml in another thread to improve performance

          Not that I'm aware of, but I may be wrong, can you show us your actual implementation of this an animation?


          Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


          Q: What's that?
          A: It's blue light.
          Q: What does it do?
          A: It turns blue.

          1 Reply Last reply
          0
          • N Offline
            N Offline
            nikhil30
            wrote on last edited by nikhil30
            #5

            Hi,

            1. How to use loader to load delegate and set only displayed elements active.....could you please give example or more info..?

            2. Animation implementation in qml :-

            Rectangle {
                       id:rect
                       width: 452
                       height: 54
                       color: "#b9261c"
                              OpacityAnimator {
                                      id:flash_header
                                      target: rect
                                      from: 0
                                      to: 1
                                      duration:300
                                      loops: Animator.Infinite;
                              }
                      }
             onSignalReceived : {
                         flash_header.start()
            }
            
            1 Reply Last reply
            0
            • N Offline
              N Offline
              nikhil30
              wrote on last edited by nikhil30
              #6

              Hi Padlock/J.Hilk,
              I tried loading delegate using loader, but no much improvement in scrolling performance.

              Any suggestions on using OpacityAnimator/ colorAnimation performance...?
              When animation starts on screen(only animation runs, other components are already loaded from qml), cpu utilization increases to 98%. Also scrolling and animation runs slowly.

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved