Cameron Simpson wrote:
On 08Dec2006 12:01, Luca <luca.piol(a)fastwebnet.it> wrote:
| How do I capture the linking time and data size of ld?
|
| I mean, example, when I compile a package foo from scratch, what
| commands should I use to save a log file with something like:
|
| /usr/bin/ld: total time in link: [time]
| /usr/bin/ld: data size [size]
Second part first: the 'size" command reports on the section sizes of
an executable, so if the ld command makes a file "bah", the command:
size bah
will report on its size. See "man size" for details.
For timing, you can get the time with the "time" command. Where you
have "ld foo...", put "time ld foo...". Time writes to standard
error,
so you will need to send that somewhere:
time ld foo... 2>output-file
However, ld will write its own error messages to stderr too, and you
_don't_ want to interfere with them. This incantation
time sh -c 'exec 2>&3 3>&-; exec ld foo...' 3>&2
2>output-file
will work around that, sending time's stderr to the output-file and ld's
stderr wherever the original stderr went (usually your terminal). It
takes a copy of the original stderr and the reattaches the copy as stderr
inside the sh command.
Finally, "time" is often a builtin command in shells. You may get better
behaviour by saying "/usr/bin/time" instead of just "time". That
will
run the system "time" executable rather than whatever your shell provides
internally.
Cheers,
Thanks Cameron;
I read something about using gprof and profiling but wasn't 100% sure so
I thought better ask.