Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How long does the write operation of the database take
Forum Updated to NodeBB v4.3 + New Features

How long does the write operation of the database take

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 5 Posters 3.5k Views
  • 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.
  • JonBJ JonB

    @Christian-Ehrlicher
    Oh yes I didn't notice that! Could be making a huge difference!

    @tovax
    Comment that out for a start and see whether it is making any difference?

    tovaxT Offline
    tovaxT Offline
    tovax
    wrote on last edited by
    #13

    @JonB
    There is no difference after commenting out "QWriteLocker".

    1 Reply Last reply
    0
    • Christian EhrlicherC Offline
      Christian EhrlicherC Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by
      #14

      @tovax said in How long does the write operation of the database take:

      There is no difference after commenting out "QWriteLocker".

      I don't see why you need it at all - that's why I pointed it out.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      tovaxT 1 Reply Last reply
      1
      • Christian EhrlicherC Christian Ehrlicher

        @tovax said in How long does the write operation of the database take:

        There is no difference after commenting out "QWriteLocker".

        I don't see why you need it at all - that's why I pointed it out.

        tovaxT Offline
        tovaxT Offline
        tovax
        wrote on last edited by
        #15

        @Christian-Ehrlicher Hi, thank you very much, this class was a singleton class in the previous version, and the current version does not require a read-write lock.

        1 Reply Last reply
        0
        • Christian EhrlicherC Offline
          Christian EhrlicherC Offline
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on last edited by
          #16

          So your previous implementation was wrong - you must not access the gui from without the main thread :)

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          tovaxT 1 Reply Last reply
          2
          • Christian EhrlicherC Christian Ehrlicher

            So your previous implementation was wrong - you must not access the gui from without the main thread :)

            tovaxT Offline
            tovaxT Offline
            tovax
            wrote on last edited by
            #17

            @Christian-Ehrlicher Thank you very much for your reply :)

            1 Reply Last reply
            0
            • JonBJ JonB

              @tovax
              Don't forget: setData() may be doing more than just writing a value to the database. For example, it raises a dataChanged() signal, and if you have a view slotted to that (and using the default DirectConnection) you will be timing the whole of the view's response code here.... At minimum you might disable Qt signals for the duration. That's why I said profiling would be the best way to see what is really going on.

              tovaxT Offline
              tovaxT Offline
              tovax
              wrote on last edited by
              #18

              @JonB I have checked the signals and slots of the database and there is no connection during the reading and writing test.

              jsulmJ JonBJ 2 Replies Last reply
              0
              • tovaxT tovax

                @JonB I have checked the signals and slots of the database and there is no connection during the reading and writing test.

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #19

                @tovax To find out whether the write itself is slow you should omit the model and write directly using QSqlQuery.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                3
                • tovaxT tovax

                  @JonB I have checked the signals and slots of the database and there is no connection during the reading and writing test.

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #20

                  @tovax
                  Well I'm not sure what you want us to say here? At your timings you can achieve ~15 write operations per second. I would not be very happy with this!

                  Try:

                          timer.start();
                          for (int = 0; i < 10; i++)
                          {
                              model->setData(index, value, role);
                              // change `index` and/or `value`
                          }
                          int64_t elapsedBuffer = timer.elapsed();
                  

                  Does this take 10x as long??

                  I have checked the signals and slots of the database and there is no connection during the reading and writing test.

                  So you have no views at all attached to the model?

                  tovaxT 1 Reply Last reply
                  1
                  • JonBJ JonB

                    @tovax
                    Well I'm not sure what you want us to say here? At your timings you can achieve ~15 write operations per second. I would not be very happy with this!

                    Try:

                            timer.start();
                            for (int = 0; i < 10; i++)
                            {
                                model->setData(index, value, role);
                                // change `index` and/or `value`
                            }
                            int64_t elapsedBuffer = timer.elapsed();
                    

                    Does this take 10x as long??

                    I have checked the signals and slots of the database and there is no connection during the reading and writing test.

                    So you have no views at all attached to the model?

                    tovaxT Offline
                    tovaxT Offline
                    tovax
                    wrote on last edited by tovax
                    #21

                    @JonB Hi, thank you very much for your patience.

                    1. It takes 10x time.
                    2. no views attached to the model.
                    3. My purpose is to know how many milliseconds it takes for the database to read and write normally, ~ 80ms seems to be too long, I doubt my program.
                    4. I created a demo program separately, and the reading and writing speed is very fast. I will reply to the final test results later.
                    1 Reply Last reply
                    0
                    • tovaxT Offline
                      tovaxT Offline
                      tovax
                      wrote on last edited by
                      #22

                      @Christian-Ehrlicher @JonB @J-Hilk @jsulm
                      Thank you for your help. The reason for the slow speed should be the hard disk. The same demo takes about 80 ms for HDD and about 4 ms for SSD.

                      1 Reply Last reply
                      2

                      • Login

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