Memory usage while compiling the RTT TypeKit (RTT 2.0)

The memory usage is a bit exagerated (to say the least). Using make -j2
puts my 3GB RAM machine on its knees. Each gcc process goes up to 1.5G
(maybe more at peaks).

Memory usage while compiling the RTT TypeKit (RTT 2.0)

On Tuesday 04 May 2010 17:24:24 Sylvain Joyeux wrote:
> The memory usage is a bit exagerated (to say the least). Using make -j2
> puts my 3GB RAM machine on its knees. Each gcc process goes up to 1.5G
> (maybe more at peaks).
>

I am aware of this. I need 12 gigs of ram to compile RTT 2.0 with -j8 to be
comfortable. I split the RTT typekit code into separate files, but in a way
this made it worse, before there was one gcc process taking lots of ram, with
-jx, there are now x gcc processes taking lots of ram.

The problem is that too much template code is generated with the
'TemplateTypeInfo' classes. I don't know where/how exactly yet, but it
probably can be optimized. This is on my agenda...

This *is* a bug.

Peter

Memory usage while compiling the RTT TypeKit (RTT 2.0)

On May 5, 2010, at 10:09 , Peter Soetens wrote:

> On Tuesday 04 May 2010 17:24:24 Sylvain Joyeux wrote:
>> The memory usage is a bit exagerated (to say the least). Using make -j2
>> puts my 3GB RAM machine on its knees. Each gcc process goes up to 1.5G
>> (maybe more at peaks).
>>
>
> I am aware of this. I need 12 gigs of ram to compile RTT 2.0 with -j8 to be
> comfortable. I split the RTT typekit code into separate files, but in a way
> this made it worse, before there was one gcc process taking lots of ram, with
> -jx, there are now x gcc processes taking lots of ram.
>
> The problem is that too much template code is generated with the
> 'TemplateTypeInfo' classes. I don't know where/how exactly yet, but it
> probably can be optimized. This is on my agenda...
>
> This *is* a bug.
>
> Peter

+1 ... I allocate about 0.5 GB per gcc compile process, in general. RTT isn't that unusual in this area.

Can't wait till clang/llvm works with Orocos ... that might significantly change this ...
S