emacs-devel
[Top][All Lists]
Advanced

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

Re: How to measure frame rate in fps?


From: Eli Zaretskii
Subject: Re: How to measure frame rate in fps?
Date: Sun, 06 Jun 2021 09:11:00 +0300

> Cc: wyuenho@gmail.com, emacs-devel@gnu.org
> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Sun, 6 Jun 2021 05:09:09 +0300
> 
> On 02.06.2021 05:29, Eli Zaretskii wrote:
> > Maybe run Emacs under 'perf' and see which GTK API call(s) take(s)
> > most of those milliseconds?
> 
> I'm not sure if I've been doing it right, but the gtk functions seem to 
> be taking pretty much none of the runtime:
> 
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_widget_get_direction
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_widget_get_type 
> 
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_style_context_get_property
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_get_event_widget
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_style_context_get_type
>     0,00%  emacs  libgtk-3.so.0.2404.16  [.] gtk_toolbar_get_type

Yes, looks like that.  Strange, since you did say disabling the tool
bar makes a prominent difference.

> The leaders looked like:
> 
>    28,52%  emacs         emacs                       [.] mark_object 
> 
>     6,87%  emacs         emacs                       [.] assq_no_quit 
> 
>     3,45%  emacs         emacs                       [.] mark_char_table 
> 
>     3,37%  emacs         emacs                       [.] sweep_strings 
> 
>     2,84%  emacs         emacs                       [.] boyer_moore 

Three out of 5 of the above mean Emacs spends a large proportion of
the time (35%) doing GC.  I'm not sure I understand why should Emacs
perform GC while being idle: do you have some timers running, perhaps?
If this is "emacs -Q", what happens if you disable blink-cursor-mode
and global-eldoc-mode?

>     0,25%  emacs         emacs                       [.] json_to_lisp 

Any idea why this is here?

(I think "perf report" supports output in the form of a call-tree,
where functions are shown with their callers?  That allows to better
understand what high-level processing is running in Emacs than just
looking at the profile sorted by percents.)



reply via email to

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