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

Reply via email to