Unsolved Can't compile with jom in Windows - Makefile has bash syntax in it
-
Just in case you wonder: It is long known that MSVC is the fastest compiler for Windows. gcc on Linux is in the same league, probably a bit faster (the Linux file system is really good for tasks like compiling). MinGW, which is gcc on Windows is significantly slower. I don't know how Clang behaves on Windows, but IIRC, some people have great hopes in it.
-
@aha_1980
Very interesting!the Linux file system is really good for tasks like compiling
Excellent! Why?
-
@aha_1980, that's very useful information, thanks!
Other than having a benchmark that hits hard, another concern with this is ensuring it scales on many-core CPUs and the like. I'm guessing that'll depend as much on jom as it does on the compiler proper, but I should also probably MSVC to deliver on that front as well.
-
Probably good caching? I don't really know.
I also have no experience with Mac, so I cannot compare in this direction.
-
For the record, a while back we (site I work for) actually benchmarked compilation on HDDs vs SSDs. While I'm sure that things have changed in the meantime, we found that for the actual build step, I/O played a very, very minor part.
-
@morphine
Well using a ramdisk at work when compiling inside virtual machine
speed things up a lot. especially the linking part.
so while difference between spindisk (newer) and SSD might not
do much, upgrading to 6000/6000 MB/s ( ram disk speed)
did consistently work faster.
Its just a note. didn't really do much testing. -
We did not, in fact, test that scenario. You've piqued my interest, maybe I will at some point :)
-
@morphine
Well building Qt on ramdrive does take lots of ram :)
But real test could be fun. to see how much it matters. (for real)
for our project is just 20-25 secs. (out of 2 minutes) but
without proper testing it could be other factors. -
Well using a ramdisk at work when compiling inside virtual machine
Now what is that "ramdisk" exactly? My Windows hosts Linux in a VirtualBox VM, are you saying I could have some sort of ramdisk in the Linux VM?
-
@JonB
well its a block device in ram. like a normal disk.
and yes inside the wm.
https://www.jamescoyle.net/how-to/943-create-a-ram-disk-in-linuxon windows i use
Softperfect ram disk. -
@morphine said in Can't compile with jom in Windows - Makefile has bash syntax in it:
@aha_1980, that's very useful information, thanks!
Other than having a benchmark that hits hard, another concern with this is ensuring it scales on many-core CPUs and the like. I'm guessing that'll depend as much on jom as it does on the compiler proper, but I should also probably MSVC to deliver on that front as well.
When using Qt creator you require jom for MSVC for parallel compilation. IIRC it compensates the lack of nmake to do parallel compilations on its own. This is done by the MSVC IDE there.
Qt creator and MinGW does allow parallel compilation on windows. You need to use the -j parameter or environment settings. There no need to use jom with MinGW, but you can (see the link I had posted above for CPU comparison).
Also RAM disks help to speed up. I place my shadow on the ram disk.
There was already a discussion involving @mrjj https://forum.qt.io/topic/80933/qtcreator-shadow-build-directory-structure/19
However, I thought that there were some numbers given in comparison.