[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Elisp native profiler
From: |
Tomohiro Matsuyama |
Subject: |
Re: Elisp native profiler |
Date: |
Fri, 28 Sep 2012 19:09:56 +0900 |
On Thu, 27 Sep 2012 07:55:55 +0200
Eli Zaretskii <address@hidden> wrote:
> > Date: Thu, 27 Sep 2012 07:46:55 +0900
> > From: Tomohiro Matsuyama <address@hidden>
> > Cc: address@hidden, address@hidden, address@hidden
> >
> > > So what do you need, in addition to the name of the primitive, that is in
> > > siginfo_t and ucontext_t?
> > What I wanted to say here is that we need to get a stack pointer of the
> > running main thread to obtain C-level backtrace.
>
> Sorry, I don't understand: if all you need is to profile primitives,
> why do you need a full C-level backtrace? The primitives called are
> already available in the backtrace_list structure, aren't they?
No, because C-level function calls like Fvertical_motion could never been
listed in backtrace_list. That's why byte-code often appears at top in a
profiling result.
> > In my understand, the
> > stack pointer is not available to other threads without firing signals.
>
> It's possible on Windows. If it isn't possible with pthreads, that's
> just too bad. Anyway, getting at the stack pointer does not yet give
> you the backtrace.
I explored pthread manual, but I didn't finally find anything like that.
> > By the way, is it easy to obtain C-level backtrace? gdb and addr2line might
> > help me, but I want a small and portable library for that.
>
> See emacs_backtrace on sysdep.c. Not sure about the portability of
> the underlying APIs.
Great!
> AFAIK, any backtrace facility is specific to the object file format
> and the debug info used by the platform. Compiler optimizations and
> various non-local jumps complicate things a lot. My suggestion would
> be not to go there, unless absolutely needed and desirable, because it
> most probably be in a constant need of maintenance to keep up with
> development of the underlying platform, compilers, etc.
How do you think about inserting a backtrace building code (like Ffuncall does)
into DEFUN macro expansion if specified so in configure script, for example?
This could be fully portable, but involves some overhead.
Tomohiro
- Re: Elisp native profiler, (continued)
- Re: Elisp native profiler, Stefan Monnier, 2012/09/27
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/27
- Re: Elisp native profiler, Stefan Monnier, 2012/09/27
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/28
- Re: Elisp native profiler, Stephen Berman, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Paul Eggert, 2012/09/30
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/30
- Re: Elisp native profiler,
Tomohiro Matsuyama <=
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Eli Zaretskii, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/28
- Re: Elisp native profiler, Stefan Monnier, 2012/09/26
- Re: Elisp native profiler, Tomohiro Matsuyama, 2012/09/26
- Re: Elisp native profiler, Tomohiro Matsuyama, 2012/09/28