Graeme Geldenhuys wrote on Thu, 16 Aug 2012:
On 16 August 2012 10:12, Jonas Maebe <[email protected]> wrote:
make FPC=latest-release all -j ncpus FPMAKEOPT="-T ncpus"
Two questions...
1) Is the -j <n> option still needed, now that we moved to fpmake with
the -T option? Sven said the -j option isn't usable any more.
It doesn't make a difference for the packages directory, because that
one uses fpmake. It can make a difference for the RTL directory (it
doesn't currently under Linux, but it may in the future).
2) Does the value passed to -j or -T differ? I know with -j <n> you
usually specify the number of cores +1 (this was recommended all over
the internet messages I read). The -T in fpmake means threads as far
as I understand. So a i7 quad core can handle 8 threads
simultaneously. So then in that case I would specify -T 8. Is this
correct?
Those "all over the internet messages" are mostly based on experience
from 10-20 years ago with extremely slow hard drives and even slower
compilers. The idea is that while one process is waiting for I/O to
complete, another process can use the waiting one's share of cpu time
to compile something in between. However, since FPC compiles fairly
quickly, you'll usually be completely I/O bound anyway if there is in
fact an I/O bottleneck, so I doubt it will help much. Just time both
scenarios a couple and see which one is faster. I don't think you'll
see a statistically significant difference.
There is no semantic difference between the value for the -T and -j
parameters (whether the code is executed in a separate thread or in a
separate process is completely irrelevant), so just specify the same
value for both.
Jonas
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel