PDA

View Full Version : QT 4.6.3 regression? Dll-s under Windows load slow compared to Qt 4.6.2?



lalesculiviu
11th June 2010, 09:01
Hello!

I have noticed this:

I am the author of a free software. With Qt 4.6.2, under Windows 7, the application starts very fast. With Qt 4.6.3, it loads very slow. It only depends on the Qt dll-s. For instance, I have the fet.exe executable file. Putting the Qt 4.6.2 dll's with fet.exe, it loads very fast; putting the Qt 4.6.3 dll-s with the same fet.exe, it loads slow, sometimes very slow.

I use these 8 dll-s: QTDIR\bin\mingwm10.dll, QTDIR\bin\libgcc_s_dw2-1.dll, QTDIR\bin\Qt3Support4.dll, QTDIR\bin\QtCore4.dll, QTDIR\bin\QtGui4.dll, QTDIR\bin\QtNetwork4.dll, QTDIR\bin\QtSQl4.dll, QTDIR\bin\QtXml4.dll.

You can test with my program. FET homepage is on http://lalescu.ro/liviu/fet/ , and downloads are on http://lalescu.ro/liviu/fet/download/ (FET stable with Qt 4.6.2) and http://lalescu.ro/liviu/fet/download/test/ (FET snapshot with Qt 4.6.3). You can take the fet.exe from the snapshot and put it with dll-s of Qt 4.6.2 (loads fast) and put it with dll-s of Qt 4.6.3 (loads slow).

Please let me know, is this a known issue? When will it be solved?

lalesculiviu
11th June 2010, 10:13
I got a report from a user that the snapshot (with Qt 4.6.3) loads the first time a bit slower than stable (with Qt 4.6.2), but after the first run, both versions start instantaneously subsequently. This user has Windows XP SP3. I noticed the slowdown under Windows 7, on my computer.

wysota
11th June 2010, 10:27
Maybe there is another Qt application linked against 4.6.2 started before your application which causes the libraries to be already in the system memory which is not the case for 4.6.3. I stongly doubt Qt itself has anything to do with a different linkage time, the size of the two versions of the library would have to differ significantly which is surely not the case in this situation.

Zlatomir
11th June 2010, 10:58
I have the same strange behavior with Windows 7 (64bit) and 4.6.3
All application (including hello world) start about 10 seconds after double-click or run button from creator

wysota
11th June 2010, 11:00
Try compiling the dlls yourself. The Trolls might have enabled some switch that shouldn't have been enabled by default for the binary release which has an influence on linkage time.

lalesculiviu
11th June 2010, 16:38
Also, I forgot to mention that my Windows 7 is also 64 bit.

But also on Windows Vista I noticed that my program starts slower (but not much slower).

Edited to add: I found this on Qt Bug Tracker: http://bugreports.qt.nokia.com/browse/QTBUG-11309
It seems to be the same problem as we are noticing.

wysota
11th June 2010, 16:56
If it is then the problem is not in loading the DLL but in initializing the QApplication object.

Zlatomir
11th June 2010, 17:01
Do you have other Qt related stuff installed?

Because i had: Qt SDK(4.6.3), Nokia Qt SDK RC, and Qt libraries for VS.
I uninstalled everything, and installed only the first two and now my Qt applications start normally.

I can't explain it, the dll's in "path" where the ones from Qt SDK, i tried without them (had the error that could not found dll's) and tried with dll's copied in the application folder so it wasn't some dll's from Nokia SDK that messed up things... so what could have been? i don't have a clue :confused:

lalesculiviu
11th June 2010, 17:12
I have only Qt SDK installed. My application with old 4.6.2 dll-s is OK, with new 4.6.3 dll-s is bad. Maybe you need to try more times until you get a bad start, but it will happen again I think.

lalesculiviu
12th June 2010, 02:19
I reverted my application to Qt 4.6.2, so the download links I wrote in the start do not work anymore. Anyway, you can check this problem with any example using QApplication, probably.

tobi
8th August 2010, 11:32
I experienced the same issues: all Qt applications which load the 4.6.3 dlls take several seconds to start regardless how many times they're started.

I switched over to 4.7 beta 2 and everything runs smoothly again.

Just my 2c.