MINGW vs MSVC



  • So, express your experiences and beliefs.

    I, self, have been developing and compiling with MingW on Linux and Windows, and I have been very satisfied, until now.

    My application is mainly developed and compiled on Linux with QtCreator, and when I'm satisfied, I compile it also with the Windows version of QtCreator and Mingw.

    So, almost ready for release, I did compile the application in Linux with good performance results (it took 10 seconds to load the data). Switching onto Windows to compile for the final build, the application took about 10 minutes to load!!! Hence 60 times slower on Windows compared to Linux!!!!! I took me days to find out what was wrong, tried scrapping the QFile using C standard routines for loading files, but without success. Nothing went well, the cause of the performance hog boiled down to the extended logic operations for the algorithms, which is executed in another thread (QConcurrent) in the program. So my last theory was that applications compiled with MingW, will not perform well compared to other compilers, or that MingW thread-handling is very unoptimized. So after some struggle, I successfully installed Visual Studio libraries and got them to work with QTCreator (after some problems, bugs and guesswork).

    Successfully compiling the application with the MSVC, made it shine again, comparing equal to the performance on Linux.


  • Qt Champions 2016

    What you're describing is very bizarre. I wouldn't be surprised if you have a subtle bug in your code that's only evident with MinGW. I always use it for Windows compiling (as MSVC is an elephant, and not very good of a compiler too) and have never found anything even remotely resembling the behaviour you describe.


  • Qt Champions 2016

    Hi
    I also use mingw/ vs on windows.
    Besides different warnings etc i have not noticed any
    huge run time difference. Not anything like 60 times :)
    What version of Qt / mingw/ vs are we talking about ?

    The test pc for windows have same spec as the one u test with linux?
    Even and old core 2 cpu will have vastly better threaded performance than say
    older atoms.


  • Moderators

    @Vantskruv

    Thanks for sharing your experience.

    Probably you should add a couple of more details on versions. Especially, did you use MinGW for 64 bit?

    I had changed from msvc2005 to MinGW a couple of years back. There was no definite change in performance to note as long as 32 bit was used. I started to experiment with a MinGW 64 bit self-compiled Qt version, which was compared to the MinGW 32bit version bulky and slow. Since there was no direct need for 64 bit I switched simply back to 32 bit.

    However, I compiled my code also on linux with 64 bit gnu-c++ and the performance was similar to 64 bit windows and 32 bitMinGW-compiled.


Log in to reply