Hi Norbert, On Mon, 4 Apr 2011 11:33:40 -0500 Norbert Thiebaud <nthiebaud@gmail.com> wrote:
On Mon, Apr 4, 2011 at 10:30 AM, Bjoern Michaelsen <bjoern.michaelsen@canonical.com> wrote:Hi Michael, Hi all, It seems that the dep files generated by gcc have duplicates. This could: a) be fixed in gcc itself. b) be fixed by sorting out duplicates when generating the dep file. This could be done in the solenv/gbuild/processdeps.awk(*) script and would then likely result in a 100% speedup.Not quite. Sure, make {void} will be faster, but at a the cost of running a script for each dep generation, that include an alphanumeric sort or a sometime quite large number of entry, and almost always these entry will have a very high correlation up to all but the last few chars iow a likely poor performing sort.
Still: sorting and uniqing <1000 strings pales compared to the parsing and compiling of a huge amount of C++ source code (one file per string above). It will even pale compared to preprocessing the files (which is what ccache does). Even when using gawk hashtables for that.
I'm concern that the remedy may be worse that the disease in this case... but we could certainly try that on windows since they already taking the medicine and suffering most of the side-effect already.
On windows we dont have _that_ problem as we are still using our own makedepend, were we can make sure that no dupes are generated directly in C. Makedepend is what makes Windows so awefully slow, BTW. If cl.exe would produce halfways sane output using -showIncludes, you could use that and be twice as fast. Best Regards, Bjoern -- https://launchpad.net/~bjoern-michaelsen
Attachment:
signature.asc
Description: PGP signature