🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.emacs.bug
Article #87389

Degraded performance in Emacs 19.27

#87389
From: Timothy J. Blackman
Date: Wed, 28 Sep 1994 17:10
150 lines
4459 bytes
In GNU Emacs 19.27.1 (sparc-sun-sunos4.1.3, X toolkit) of Sun Sep 18 1994 on inukshuk

When I upgraded from Emacs 19.27 to Emacs 19.22, I noticed slower
performance while running other large applications or deleting large
buffers.

I wrote a simple test to measure the allocation and gc performance.
Create the two files paging and paging.el, and make paging executable.

paging:

#!/bin/csh
set emacs=$1
time $emacs -batch -l paging.el -f test-paging

paging.el:

(defun test-paging ()
  (set-buffer (get-buffer-create "*test-paging*"))
  (dotimes (i 5)
    (insert-char ?a 4000000)
    (kill-region (point-min) (point-max)))
  (kill-emacs))
  
Run the test this way:

  paging emacs-19.22
  paging emacs-19.27

(or where ever these executables live).

Here are the results I got when running on my Sun SPARCstation 2.  I
copied the two executables to my local disk to avoid any interference
from NFS, although the results were similar both ways.

  tjb@krenek[34]: paging /tmp/emacs-19.22
  6.8u 3.2s 0:14 70% 0+11796k 9+0io 40pf+0w
  tjb@krenek[35]: paging /tmp/emacs-19.22
  6.7u 3.1s 0:15 65% 0+11828k 8+0io 217pf+0w
  tjb@krenek[36]: paging /tmp/emacs-19.27
  11.3u 3.1s 0:20 69% 0+13620k 12+0io 309pf+0w
  tjb@krenek[37]: paging /tmp/emacs-19.27
  10.7u 3.4s 0:18 78% 0+13860k 9+0io 158pf+0w
  tjb@krenek[38]: 

Notice that the user time is 60% higher for Emacs 19.27 compared to
19.22.

More information about the Emacs versions I tested:

The version information for the 19.22 I used was:

  GNU Emacs 19.22.17 of Thu Feb 24 1994 on dead (berkeley-unix)

Both the 19.22 and 19.27 versions of emacs that I used had the following
modifications:

  1. We increased the size of the maximum buffer by defining these in
     the src/m/sparc.h file:

	   #define GCTYPEBITS 5
	   #define VALBITS    26


  2. And we preloaded a bunch of lisp files (exact same list for both revs)
     using site-init.el.  To do that we had to create the site-init.el file
     and change the PURESIZE macro in "src/m/sparc.h" from

	   #define PURESIZE 130000
   to
	   #define PURESIZE  800000

Here is the site-init.el that we used:

;;; site-init.el --- load up more lisp files at ODI.  These are *not* stored
;;;		in the src/ymakefile for loading into the DOC file.  See the
;;;		site-load.el file for that.  (%%% move a lot of these into
;;;		site-load.el!!!

;;; Skip these on purpose since they are commonly overridden
;;; vc.el

;;; Investigate these and the (load ...) entries below for site-load
;;; abbrev.el
;;; apropos.el
;;; cl.el
;;; comint.el
;;; compile.el
;;; dabbrev.el
;;; env.el
;;; perl-mode.el
;;; rect.el
;;; server.el
;;; 
;;; Investigate these.
;;; appt.el
;;; bookmark.el
;;; calendar.el
;;; complete.el
;;; diary.el
;;; diff.el
;;; mailabbrev.el
;;; mailalias.el
;;; makeinfo.el
;;; man.el
;;; menu-bar.el
;;; outline.el
;;; paren.el
;;; ring.el
;;; tabify.el
;;; tar-mode.el
;;; tex-mode.el
;;; two-column.el
;;; uncompress.el
;;; x-menu.el

(load "info")
(garbage-collect)
(load "completion")
(garbage-collect)
(load "bytecomp")
(garbage-collect)
(load "byte-opt")
(garbage-collect)
(load "mail-utils")
(garbage-collect)
(load "sendmail")
(garbage-collect)
(load "timezone")
(garbage-collect)
(load "rmail")
(garbage-collect)
(load "rmailkwd")
(garbage-collect)
(load "rmailmsc")
(garbage-collect)
(load "rmailout")
(garbage-collect)
(load "rmailsort")
(garbage-collect)
(load "rmailsum")
(garbage-collect)
(load "dired")
(garbage-collect)
(load "sort")
(garbage-collect)
(load "etags")
(garbage-collect)
(load "shell")
(garbage-collect)
Technical Details
Message-ID: <199409281705.NAA15033@krenek.odi.com>
Path: arc1-ca.pugleaf.net!bga.com!news.sprintlink.net!redstone.interpath.net!ddsw1!panix!MathWorks.Com!news.duke.edu!convex!cs.utexas.edu!howland.reston.ans.net!math.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!odi.COM!tjb

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fb2f1,5780a31eeeffc186,start
X-Google-Attributes: gidfb2f1,public
X-Google-ArrivalTime: 1994-09-29 00:23:50 PST
Path: arc1-ca.pugleaf.net!bga.com!news.sprintlink.net!redstone.interpath.net!ddsw1!panix!MathWorks.Com!news.duke.edu!convex!cs.utexas.edu!howland.reston.ans.net!math.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!odi.COM!tjb
From: tjb@odi.COM (Timothy J. Blackman)
Newsgroups: gnu.emacs.bug
Subject: Degraded performance in Emacs 19.27
Date: 28 Sep 1994 13:10:17 -0400
Organization: GNUs Not Usenet
Lines: 150
Sender: daemon@cis.ohio-state.edu
Approved: bug-gnu-emacs@prep.ai.mit.edu
Distribution: gnu
Message-ID: <199409281705.NAA15033@krenek.odi.com>
Reply-To: tjb@odi.com