[En-Nut-Discussion] Off-topic - Building Nut/OS fast...very fast

Nathan Moore nategoose at gmail.com
Tue Jul 19 16:26:44 CEST 2011


Not sure what system you currently have, but I remember when I used to
do a lot of Nut/OS work that Windows XP some MinGW tools were
strangely slow.  This was particularly apparent with "make clean".  So much
so that my coworkers would occasionally yell "Oh now!  I did a 'make clean'"
when they forgot to just delete the files through the GUI.

I'm not sure why this was so slow, but I suspect that it had to do with
triggering
GUI updates so that Explorer would display the changes to the filesystem as
well as possibly changes to the database that it uses to speed up filesystem
searches.

I had Vista, and didn't have performance issues to that degree.
My guess is that XP was doing work to update the Explorer view even if
Explorer
wasn't showing that directory.  Making sure that Explorer isn't looking at
directories
involved in the build is probably a good idea.
Sometimes having files open in other programs can interfere with opening
them in a
second program under Windows, but this usually results in failure so this
may not
be the case.

Another thing you might try is to do your builds on a FAT32 partition.  The
filesystem
is much simpler than NTFS and doesn't have all of the permission,
journalling, and
other overhead.  I've seen some extreme slowdowns due to permissions in some
operations under Vista.

There are build order issues that could effect things, such as compiling one
file for
all platforms before moving to the next file, that could effect performance
by making
better use of the filesystem cache but that would be hard to test and may
not work
since object files also require their own filesystem access.

As far as RAM, I'd just suggest more of the cheap stuff unless you find that
your RAM
is really crappy.

make -j
with no number lets make decide how many jobs to use, which I found works
well.

I'm not sure how the build directories are set up now, but having a
different directory
for the object files for each target may help.  You wouldn't have to do a
clean
between each target build, and there's a remote possibility that NTFS does
odd things
when you keep deleting and recreating (or overwriting) files with the same
name.


Nathan



On Tue, Jul 19, 2011 at 5:05 AM, Harald Kipp <harald.kipp at egnite.de> wrote:

> Hi all,
>
> I'm aware, that this is not directly related to Nut/OS, but the right
> people to ask may be available here.
>
> Building all Nut/OS libs and apps for all supported targets takes time
> and I'm trying to figure out, where's the bottleneck. Upgrading to a
> 3GHz i7 and 12GB RAM helped, but I'd like to have more. Of course the
> compiler does a lot of file I/O and the Hitachi drives I'm using are not
> known for being fast.
>
> Therefore I purchased an SSD (OCZ Agility2) and plugged it into one of
> the SATA3 interfaces, expecting a real performance boost. I later
> learned, that this SSD is not known for its high performance. But the
> result was more than disappointing: Copying is now quite fast, but
> compile time decreased by about 10% only. In fact this money was wasted.
>
> The next idea is to get faster RAM. I'm currently using cheap DDR3-1600
> CL9 9-9-24. For twice the money there are faster chips. But will it be
> worth? Before wasting more money, I'd like to ask for your experience.
> I'm not too familiar with PC technology.
>
> Thanks,
>
> Harald
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>



More information about the En-Nut-Discussion mailing list