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

Significant performance regression in Qt 5.0.1 compiled with MinGW

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P2: Important P2: Important
    • 5.1.0
    • 5.0.1
    • Packaging & Installer
    • None
    • Windows 8, 32-bit

      MinGW build of Qt 5.0.1 (from qt-project.org) much worse performance when handling QByteArrays and I/O (and probably everything in QtCore) then Qt 4.8.4. In my application that loads a text-based data file line-by-line, splits it in fields, converts them to other data types and saves everything to a file slowdown is 2-3 times depending on what kind of processing is done. I'm attaching a simple benchmark that demonstrates the problem. On my system I have the following results:

      ********* Start testing of Qt5PerfTest *********
      Config: Using QTest library 4.8.4, Qt 4.8.4
      PASS   : Qt5PerfTest::initTestCase()
      RESULT : Qt5PerfTest::testCase1():
           0.0062 msecs per iteration (total: 51, iterations: 8192)
      PASS   : Qt5PerfTest::testCase1()
      PASS   : Qt5PerfTest::cleanupTestCase()
      Totals: 3 passed, 0 failed, 0 skipped
      ********* Finished testing of Qt5PerfTest *********
      
      ********* Start testing of Qt5PerfTest *********
      Config: Using QTest library 5.0.1, Qt 5.0.1
      PASS   : Qt5PerfTest::initTestCase()
      PASS   : Qt5PerfTest::testCase1()
      RESULT : Qt5PerfTest::testCase1():
           0.018 msecs per iteration (total: 74, iterations: 4096)
      PASS   : Qt5PerfTest::cleanupTestCase()
      Totals: 3 passed, 0 failed, 0 skipped
      ********* Finished testing of Qt5PerfTest *********
      

      That's 2.9 times slowdown. I guess it is related to use of SJLJ exceptions with the new toolchain. I cannot reproduce the slowdown in Linux. Using CONFIG+=exceptions_off also does not significantly improve performance.

      It would be good to have MinGW build without such large performance regression.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            kkohne Kai Köhne
            eugmes Ievgenii Meshcheriakov (Inactive)
            Votes:
            2 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes