tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Should lang/clang use lang/libLLVM?
On Wed, Dec 30, 2015 at 01:14:30PM -0500, Greg Troxel wrote:
> > For small source files, dynamic linking overhead is a factor of 10.
>
> Does it make sense to you that the overhead of doing the linking of the
> compiler binaries (assuming everything is in the buffer cache) is 10x
> the actual run time of the compiler?
The dynamically linked binary has to patch up all the vtables etc, that
is a significant chunk of the total runtime for trivial input. Given
that it has to do it twice, it matters a lot.
> I generated a very small source file that just includes stdlib and has a
> main taht calls exit. It's hard to imagine anything real that is much
> simpler.
>
> on a netbsd-6 i386 box:
>
> $ time sh -c 'for i in $(seq 1 1000); do gcc -c foo.c; done'
> real 0m14.081s
> user 0m8.836s
> sys 0m4.786s
>
> $ time sh -c 'for i in $(seq 1 1000); do clang -c foo.c; done'
> real 0m24.070s
> user 0m15.436s
> sys 0m8.427s
That's fishy, something is wrong with the build if it is slower than
GCC for trivial input. What I see is:
# time sh -c 'for i in $(seq 1 100); do /usr/bin/clang -c test.c; done'
2.29 real 1.32 user 0.96 sys
# time sh -c 'for i in $(seq 1 1000); do /usr/pkg/bin/clang -c test.c; done'
26.08 real 13.25 user 12.82 sys
# time sh -c 'for i in $(seq 1 1000); do /usr/pkg/gcc48/bin/gcc -c test.c; done'
29.69 real 14.84 user 14.84 sys
...but I don't know what's wrong with the package.
Joerg
Home |
Main Index |
Thread Index |
Old Index