tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] First kcachegrind output


From: David Mertens
Subject: Re: [Tinycc-devel] First kcachegrind output
Date: Sat, 23 Apr 2016 10:27:34 -0400

@Sergey,

If there is an argument to be made for including exsymtab, it would probably be based on these results. It is plausible to use symbol table caching and serializing/deserializing to avoid loading and parsing standard header files. This could potentially reduce compilation times. If you (we?) could show measurable performance gains with such a modification, then it might get broader support for being included with tcc.

Just thought I'd put that out there. :-)

David

On Mon, Apr 18, 2016 at 4:59 AM, Vladimir Vissoultchev <address@hidden> wrote:
Hi,

This is a very intresting picture although I'm not sure what the numbers on
it are exactly.

Numbers in the cell must be the Include Percent (1000000ths of a %) -- time
spent in the function. Numbers besides arrows look like they are the same as
the number in the cell they point to. And then in parentheses must be the
number of calls, the arrow pointing from caller to called function?

This inspired me to use VS profiler (already posted results before) on
latest [mob] to collect perf info and here are some of the results:
https://github.com/wqweto/tinycc/wiki/profiler-functions

This table is sorted on Exclusive Samples % column (descending) which as far
as I understand represents the percentage of the execution time spent in the
body of the function w/o any time spent calling other functions. So I assume
this must be an approximate indication which is the source code that is
taking most time to execute.

Also the modules table below it seems shows that ~52% is spent on I/O
(open/read/close)

cheers,
</wqw>


From: Tinycc-devel [mailto:tinycc-devel-bounces+wqweto=address@hidden]
On Behalf Of Christian Jullien
Sent: Monday, April 18, 2016 9:52 AM
To: address@hidden
Subject: Re: [Tinycc-devel] First kcachegrind output

Same file but using JPG if easier to view.


From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=address@hidden]
On Behalf Of Christian Jullien
Sent: lundi 18 avril 2016 08:42
To: address@hidden
Subject: [Tinycc-devel] First kcachegrind output

Hi,

I just had time to see how tcc behaves with callgrind (a valgrind tool) on
Fedora.

1) Install required tools
$ sudo dnf install graphviz valgrind kcachegrind

2) run tcc on top of callgrind and collect results.
$ valgrind --tool=callgrind ./tcc -c -I include tccgen.c

3) See results using collected results.
kcachegrind callgrind.out.4055 &

This is the tool one should consider before trying to optimize tcc.

Enclosed is a PS export but you can get much more from kcachegrind!

Christian


_______________________________________________
Tinycc-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel



--
 "Debugging is twice as hard as writing the code in the first place.
  Therefore, if you write the code as cleverly as possible, you are,
  by definition, not smart enough to debug it." -- Brian Kernighan

reply via email to

[Prev in Thread] Current Thread [Next in Thread]