FinalBuilder 5.5 Slowness - Delphi Compiler Page Faults

I am trying to track down the cause of periodic slowness when using FinalBuilder 5.5 to build our applications. Is anyone aware of an issue that would cause our compiler (Delphi 7's DCC32.exe) to slow down due to excessive page faults? It behaves as if it doesn't see the available RAM and it starts to swap to the Page File. When it's slow, Task Manager shows that DCC32 has low CPU usage but high Page Faults. When it's fast (that is, when it's "normal"), Task Manager shows that DCC32 has much higher CPU usage.

Our Build Machine: We are running FinalBuilder 5.5.0.707 on Windows XP Professional Version 2002 Service Pack 2. The machine is a Pentium 4 3.20GHz with 1GB of RAM.

We build a suite of 38 applications, Windows services, and utilities. When it's slow, what should be a 6 minute build turns into 30 to 90 minutes!

While I might consider adding an extra GB of RAM help, Task Manager shows lots of available RAM so it's not evident that this would help. On the other hand, in another message on 19 Nov 2009, Vincent said:

FinalBuilder is a 32 bit process, so can only access 2G of memory no matter what the machine has installed. FinalBuilder also hosts the .NET CLR, which appears to be loading assemblies in a manner that makes it impossible for the native memory manager in FinalBuilder to allocate large contiguous chunks of memory.

Therefore, could an extra GB (from 1 to 2GB) of RAM help?

Some other things to consider:

  • If I reboot the build machine, the speed is usually (but not always) back to normal.

  • The problem seems to be getter worse as the months go by.

  • If I build an application from the command line, it is always quicker (2s vs. over 10s when compiled by FB when it's slow).

  • We are running Symantec's antivirus on the build machine. I've seen no difference if I turn it off.

Daniel Comeau
"Melissa & Doug LLC"

 

Hi Daniel

1) I would recommend installing the most recent service pack for windows XP. XP SP3 was a significant service pack, and we list it as a requirement on our system requirements page for FB.

2) 1G of ram is somewhat low for a build machine. Page faults are due to memory constraints, so more memory can only improve things.

3) Running Antivirus on a build machine is not advised, it can really slow things down. In my experience, even when you turn them off, they still have hooks into the file system, they just don’t do the scan, but they still have an impact on performance. Symantec’s is one of the worst for this (although to be fair its a few years since I used their av products).

4) http://andy.jgknet.de/blog/?p=735 - This release of Delphi Speedup has some fixes to address the speed of dcc32 in particular.

5) Use FBCMD rather than the IDE to run your builds. This uses significantly less memory and resources.

6) If you must use the IDE, be sure to turn off Live Logging, as that will hog memory.

7) If you can, get a better machine for your build machine. It seems people still use the poor old machine stuck in the corner as a build machine. Our build machine is a virtual machine, but it’s running on the fastest machine we could afford (dual quad core, raid 6, 32G ram), and it has 2 cores and 4G ram allocated to it. You will be amazed how much time can be saved by a faster build machine, our build times went down by half.

HTH

Vincent,

Thanks for your suggestions. Upgrading to SP3 did the trick. Not only did the periodic slowdowns go away, the whole build process time was cut in time by 1/3 to 1/2 (compared to when there wasn't a slowdown)!

Daniel