[Top][All Lists]

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

Re: Q on performance with 10000 faces

From: Stefan Monnier
Subject: Re: Q on performance with 10000 faces
Date: Tue, 23 May 2006 07:08:47 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

> Could someone please either describe how to profile or debug the problem
> locally, to see where Emacs is spending its cycles, or point me to some doc
> that describes that process? I'm hoping there is an easy way to do this with
> Emacs Lisp, and without installing extra development tools. (The alternative
> is to try removing libraries I use until I no longer see the problem, but
> that risks taking a while.)

Most likely this can't be seen on an elisp profile.

To get a C profile, add "-pg -DPROFILING=1" to your CFLAGS.

I use the patch below (under GNU/Linux) to provide a `moncontrol' elisp file
that allows me to start/stop C profiling so I can start it once I get into
a "strangely slow" state.


--- orig/src/emacs.c
+++ mod/src/emacs.c
@@ -1769,7 +1777,7 @@
         defined on all systems now.  */
       monstartup (safe_bcopy, &etext);
-  else
+  /* else */
     moncontrol (0);
@@ -1791,6 +1799,14 @@
   return 0;
+DEFUN ("moncontrol", Fmoncontrol, Smoncontrol, 1, 1, 0,
+                               /* doc: toggle profiling.  */)
+     (arg)
+     Lisp_Object arg;
+  return moncontrol (!NILP (arg)) ? Qt : Qnil;
 /* Sort the args so we can find the most important ones
    at the beginning of argv.  */
@@ -2450,6 +2466,7 @@
   defsubr (&Sinvocation_name);
   defsubr (&Sinvocation_directory);
+  defsubr (&Smoncontrol);
   DEFVAR_LISP ("command-line-args", &Vcommand_line_args,
               doc: /* Args passed by shell to Emacs, as a list of strings.

reply via email to

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