Unsolved QFile save for usb drive
-
@jsulm
I need to develop a stand alone application which requires static build of Qt. I could do with Qt 5.6.2 but I could not do it anymore for 5.7.1. I don't know whether there is big change between them. -
@samdol Why don't you build Qt 5.9.1? This is the latest version. If you say you have errors while compiling you should say which errors and which compiler you're using.
-
@jsulm
I could not use Qt 5.9.1 as a commercial version because my license has expired.
I downloaded Qt 5.7.1 and configured by
configure -prefix C:\Qt\5.7.1 -static -release -platform win32-g++ -no-compile-examples -opengl desktop
and then
mingw32-make
After several hours(Slow machine), I met the following error message
In file included from release\statemachine.cpp:7:0:
release\statemachine.h:10:30: fatal error: QScxmlStateMachine: No such file or directory
#include <QScxmlStateMachine>
^
compilation terminated.
Makefile.Release:135: recipe for target '.obj/release/statemachine.o' failed.This is quite strange, because when I compile Qt 5.6.2 with the same options, It could compile well. I used mingw4.9.3 and mingw7.1 but the results are the same.
-
If you have a slot machine then you should avoid building modules you don't use. That will be a gain of time and space. You can always build additional modules on demand.
-
Following the instruction by
http://dimitris.apeiro.gr/2015/06/24/build-a-static-qt5-for-windows-by-compiling/
I could compile Qt 5.7.1. It seems some of configure options were not correct. I'll check it out more closely.
So I prepared a Qt 5.7.1 in windows 10 and when I run on_pushButton_2_released() by mrjj, it still shows poor performance. It takes 24 seconds for 10000 files on usb 2.0 drive. Now I am getting confused. Before I thought because Qt 5.6.2 is slow for entryList of files in usb. But changing Qt 5.7.1 did not improve much. If it is the problem of usb stick, accessing file should be slow with other programs. But other programs could access files on this usb very quickly. -
@samdol
Hi
Can you possible try the USB stick + program on other computer?
Win 10 if possible.You are right to think there is something fishy. If it was the device, explorer should be slow too.
So i do wonder.
-
When I run on_pushButton_2_released() to access the directory with 10000 files on hard disk it took less than a second. But accessing the same directory on usb 2.0 stick takes 53 seconds. I also tried QDirIterator but the results are the same. So I run the code in another machine with windows 10 to the same usb stick, no difference. Did it take less than a second when you access the directory with 10000 files on usb 2.0 stick?
-
@samdol
Hi
I tried Qt5.7 static and its maximum 1.2 sec on the oldest usb stick i could find.
win 10
But inside virtual win 7.
Pretty slow. Explorer show it instantly.I wish i had an other win 7 to try on.
-
@mrjj
Thank you for pictures. That is interesting. Does it mean Qt does not support well usb access for windows 7 and support well for windows 10? But my windows10 also shows poor performance. Do you think I have to try with 5.7.0 instead of 5.7.1? -
@samdol Maybe you could try to make a minimal program, nothing but the slow operation inside main(), and do profiling for it. It could reveal where the time is spent.
Edit: I mean real profiling, not just timing output.
-
Im not sure what it means.
The exact same program runs much faster in win 10.I would need a non virtual win 7 and test with to make sure its not related to being virtual.
But qdir.entryList does seems very slow (on win 7) and its not repeatable with other utils or explorer.
I will install Qt in the win 7 and see directly from creator.
Update:
To install 5.9 i installed service pack 1 for win 7
The old static compiled test program no longer takes a long time.The pc you are testing on, what service pack is that ?
I think this is related to win 7 non service pack so make sure you have a fully patched system.
-
@mrjj
Maybe you are correct. It could be related to windows service pack update. I did not apply update to my windows because the machine is not connected to internet. I will figure it out how to download from other machine and copy it to that. Thank you for details. -
@samdol
I hope you get same result :)
You can download sp 1 as a file and move to other machine.