unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#960: 23.0.60; excess consing
@ 2008-09-11 11:03 Richard M. Stallman
  2008-09-11 12:25 ` Juanma Barranquero
  0 siblings, 1 reply; 3+ messages in thread
From: Richard M. Stallman @ 2008-09-11 11:03 UTC (permalink / raw)
  To: emacs-pretest-bug

In emacs -Q, I defined these functions to measure consing:

    (defun gc-set-base ()
      (interactive)
      (setq base-cons-cells-consed cons-cells-consed)
      (setq base-strings-consed strings-consed)
      (setq base-string-chars-consed string-chars-consed)
      (setq base-vector-cells-consed vector-cells-consed)
      (setq base-symbols-consed symbols-consed)
      (setq base-misc-objects-consed misc-objects-consed)
      (setq base-intervals-consed intervals-consed))

    (defun gc-info ()
      (interactive)
      (message "C=%s S=%s(%s) V=%s SYM=%s MISC=%s INT=%s"
	       (- cons-cells-consed base-cons-cells-consed)
	       (- strings-consed base-strings-consed)
	       (- string-chars-consed base-string-chars-consed)
	       (- vector-cells-consed base-vector-cells-consed)
	       (- symbols-consed base-symbols-consed)
	       (- misc-objects-consed base-misc-objects-consed)
	       (- intervals-consed base-intervals-consed)))
    (global-set-key [?\M-*] 'gc-info)

Just typing M-* repeatedly I see that cons-cells-consed increases by
about 130, and string-chars-consed increases by around 160.  This seems
unreasonably much, for running a command that does no consing itself.


In GNU Emacs 23.0.60.6 (mipsel-unknown-linux-gnu, GTK+ Version 2.12.11)
 of 2008-09-10 on lemote-menglan
configured using `configure  'CFLAGS=-O0 -g -Wno-pointer-sign' 'mipsel-unknown-linux-gnu' 'build_alias=mipsel-unknown-linux-gnu' 'host_alias=mipsel-unknown-linux-gnu' 'target_alias=mipsel-unknown-linux-gnu''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  gpm-mouse-mode: t
  tooltip-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
n SPC g c - b a s e SPC ( ) RET C-u C-y TAB ESC C-f 
RET ESC C-f RET ESC C-f RET ESC C-f RET TAB C-p C-p 
C-p C-p TAB C-n TAB C-n C-k TAB n TAB DEL C-n TAB C-n 
TAB ESC C-f RET TAB C-u C-p C-u C-p C-n C-n C-a C-x 
ESC m C-g C-x ( ESC m C-k C-y ESC m ( s e t q SPC b 
a s e - C-e SPC C-y ) C-a C-n C-x ) C-u C-x e C-x e 
C-x e C-p C-e ) C-a C-p C-p C-p C-p C-p C-p C-@ C-u 
C-n C-n C-n C-n ESC w C-u C-p C-u C-p C-p C-o C-u C-y 
C-p C-@ C-u C-n C-u C-n C-n C-w C-u C-n C-u C-n C-n 
C-n C-n C-n C-n C-u C-y C-k C-x ( TAB C-f ESC d - ESC 
C-f ESC C-t C-a C-n C-x ) C-u C-x e e e C-p C-e ) C-n 
C-n C-p C-@ C-n C-n C-n C-n C-w C-u C-u C-p C-u C-p 
C-n ESC f ESC f - s e t C-a C-n C-o TAB i j DEL DEL 
( i n t e r a c t v e DEL DEL i v e ) ESC C-x ESC x 
g c - s e TAB RET ESC * C-u C-n C-u C-n C-u C-n ESC 
C-x ESC * ESC * ESC * ESC * ESC * ESC * ESC * ESC * 
ESC * ESC * ESC * ESC * ESC * ESC * ESC * C-a C-u C-u 
C-p C-n C-n C-@ C-u C-u C-n C-u C-n C-n C-n ESC w C-x 
4 C-g ESC x r e p o r SPC e m a c s SPC b u g RET

Recent messages:
C=1185 S=173(1763) V=0 SYM=1 MISC=95 INT=0
Auto-saving...
C=1290 S=192(44027) V=0 SYM=1 MISC=102 INT=0
C=1369 S=204(44160) V=0 SYM=1 MISC=109 INT=0
C=1448 S=216(44293) V=0 SYM=1 MISC=115 INT=0
C=1527 S=228(44426) V=0 SYM=1 MISC=121 INT=0
C=1606 S=240(44559) V=0 SYM=1 MISC=127 INT=0
C=1685 S=252(44692) V=0 SYM=1 MISC=133 INT=0
C=1764 S=264(44825) V=0 SYM=1 MISC=139 INT=0
Mark set






^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#960: 23.0.60; excess consing
  2008-09-11 11:03 bug#960: 23.0.60; excess consing Richard M. Stallman
@ 2008-09-11 12:25 ` Juanma Barranquero
  2008-09-12  8:52   ` Richard M. Stallman
  0 siblings, 1 reply; 3+ messages in thread
From: Juanma Barranquero @ 2008-09-11 12:25 UTC (permalink / raw)
  To: rms, 960

On Thu, Sep 11, 2008 at 13:03, Richard M. Stallman <rms@gnu.org> wrote:

>    (defun gc-info ()
>      (interactive)
>      (message "C=%s S=%s(%s) V=%s SYM=%s MISC=%s INT=%s"

> Just typing M-* repeatedly I see that cons-cells-consed increases by
> about 130, and string-chars-consed increases by around 160.  This seems
> unreasonably much, for running a command that does no consing itself.

`message' calls `format', which calls `copy-sequence'... Isn't that a
source of consing?

 Juanma






^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#960: 23.0.60; excess consing
  2008-09-11 12:25 ` Juanma Barranquero
@ 2008-09-12  8:52   ` Richard M. Stallman
  0 siblings, 0 replies; 3+ messages in thread
From: Richard M. Stallman @ 2008-09-12  8:52 UTC (permalink / raw)
  To: Juanma Barranquero, 960; +Cc: bug-gnu-emacs

    `message' calls `format', which calls `copy-sequence'... Isn't that a
    source of consing?

That seems to account for most of it.  I made another command
that accumulates data in a list, and it showed very little
consing.

This shows that calling `message' does a lot more consing than it
ought to need to do.  But this may not be significant for the great
consing-related slowness I see.







^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-09-12  8:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-11 11:03 bug#960: 23.0.60; excess consing Richard M. Stallman
2008-09-11 12:25 ` Juanma Barranquero
2008-09-12  8:52   ` Richard M. Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).