Page 1 of 1

Linking Time

Posted: Sun Aug 30, 2009 1:36 am
by x3n
I just wanted to celebrate with you the fact that after more than half a year I managed to fix the enormous linking time on tardis. I compiled about 20 different revisions of Orxonox on a Tardis box and measured the linking time, to isolate suspicious revisions. With additional help of Reto I followed the revision-path back through the trunk, buildsystem3, buildsystem2 and buildsystem, where I supposed the error to be between revisions 1886 and 1999... unfortunately all revisions in between don't compile on tardis. However with some luck I came across two lines, which implicitly changed the required version of gcc from 4.1.1 to 4.1.2 - and for some reason, 4.1.2 just doesn't run very well on tardis. Now I've changed the version back to 4.1.1 and the linking time decreased by a factor greater than 10!

I've attached a plot of the linking time in seconds over the revision numbers. At revision 2710, buildsystem3 was merged. During the spring semester, the amount of files and thus the linking time increased even more. The last few revisions are "faked" because we jumped from revision 3xxx to 6xxx, but you see a first decrease of the time because of the separation into modules (I've merged the libraries branch today) and then a big leap down to about 12 seconds. All times were measured while linking the orxonox library only (not on scratch by the way).

I guess you'll like this news, because the linking time sometimes ruined the workflow in the last PPS semester. But now it will be fun again!

Re: Linking Time

Posted: Sun Aug 30, 2009 1:13 pm
by beni
Wow, that's amazing. Strange we didn't notice that the increased linking time was so sudden. I mean, 80 seconds from one revision to the other is quite noticeable.

Nice work

Re: Linking Time

Posted: Sun Aug 30, 2009 2:08 pm
by x3n
I guess that's because the buildsystem3 branch was merged after the presentation in fall 08, in the semester break. And because the problem occurs only on tardis, the first time we noticed this was when the students in the spring-09-PPS started coding.

Re: Linking Time

Posted: Sun Aug 30, 2009 3:54 pm
by beni
I guess that explains it. What about that version of GCC anyway? The problem we had with it are strange. Maybe we should inform ISG about it since we experienced those problems only on tardis.

Re: Linking Time

Posted: Sun Aug 30, 2009 4:16 pm
by x3n
Maybe it's just a bad combination of compiler and linker on tardis... and btw, we can't use more recent versions of gcc (4.2, 4.3, 4.4) atm, because the version of openAL on tardis doesn't work with them.

Re: Linking Time

Posted: Sun Aug 30, 2009 4:46 pm
by beni
Looks like we gotta inform ISG of some more problems as well.

Re: Linking Time

Posted: Sun Sep 20, 2009 7:20 pm
by 1337
It is in fact a known problem. And I do wonder why they never released a 4.1.3 version.
They messed up an algorithm that went from O(N) to O(N^2) as far as I know. Because small projects don't have 10 times the link time.