I am completely new to the JUCE framework and have just been playing about with the various example applications today. The problem is that it seems to take an excessive amount of time to build even the simple HelloWorld project. It consistently takes about 90seconds or so, which although not huuge, is enormously frustrating and kills productivity!
From a quick look at the currently running processes, it seems that most of the time is spent running link.exe
Any hints about what might be causing such a slowdown?
I am building ‘HelloWorld’ release version with VS2008 on windows XP sp3
I don’t have this trouble with non-JUCE projects in VS but admittedly I do most of my C++ programming in Codeblocks/gcc so I am pretty naive about the microsoft tools.
Sorry I didnt make it very clear, I meant to say that it is equally slow for both debug and release builds!
Is it just that the Juce libraries are just so massive that it always takes ages to build? Seems strange that the build process doesnt ‘cache’ the result of previous compilations - If I just change the string to be displayed in HelloWorld/main.cpp it will take just as long to build as if I had done a complete re-build
well i get the same thing, my project currently links a few minutes on a 2GHz dual Xeon (though the amount of cpus doesn’t matter, the speed matters the linker process does not scale across threads)
If you use the amalgamated juce library it takes that long each time you rebuild.
Does it take you that long when compiling the simple HelloWorld project?
Surely that should be seen as abnormal? I would consider any reasonable project that takes over 30 seconds to compile to be a problem. It really impacts development time and will drive programmers crazy!
I used the JuceDemo for tests (dual XEON E5405 (dual core with HT)@ 2.0GHz, 6GB RAM about 4GB free)
Debug of JuceDemo with /MP "Time Elapsed 00:00:24.00"
Release of JuceDemo with /MP “Time Elapsed 00:01:10.87” (most of witch is the Generating Code/Linker time)
My project same machine
Debug with /MP "Time Elapsed 00:02:44.11"
Release with /MP “Time Elapsed 00:12:36.39”
i don’t think this is something that can be sped up without changing the optimization parameters for the linker. At home i got a dual Xeon@2.40GHz (4core each) 8GBram and a OCZ RevoDrive that can read 740MB/s and write 690MB at about 100,000 IOPS so i doubt it’s any of that, it just takes that long. It would be faster with a faster CPU cause it does not matter how many cores it’s one thread doing one thing. I wonder however witch optimization options can be changed to speed this up on windows+juce.
well i got all my hardware to do faster builds, the revo drive is the fastest storage i found on the market, but i checked and the disk subsystem is not the issue at the time of linking it’s the cpu (in my case)