Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!ames!ucbcad!ucbvax!ICST-CMR.ARPA!rbj From: rbj@ICST-CMR.ARPA (Root Boy Jim) Newsgroups: comp.emacs Subject: Re: GNU Emacs performance Message-ID: <8706091546.AA01577@icst-cmr.arpa.ARPA> Date: Tue, 9-Jun-87 11:46:53 EDT Article-I.D.: icst-cmr.8706091546.AA01577 Posted: Tue Jun 9 11:46:53 1987 Date-Received: Fri, 12-Jun-87 03:21:05 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 33 ? >>Is GNU Emacs a CPU hog (at least relative to vi, for example)? ? >Of course it is! But then, isn't vi a cpu hog relative to ed? ? ? Well, I suspect that part of why GNU runs so slowly is: ? ? 1. Memory Usage. GNU may do lots of paging on machines with small real ? real memory sizes. First, the executable is large. Also, EVERYTHING ? is kept in memory. If you are editing a 3 Meg file, you need all 3 Meg ? IN (virtual) MEMORY at once. Vi uses a temp file, and only keeps the ? active part of the file in memory. Paging or swapping is faster than going thru the file system. The only thing that would make emacs slower is if the entire file was read in before any of it was used. ? 2. Lisp code. Significant parts of the GNU functionality is written ? in LISP. Unfortunately, the LISP is interpreted, not compiled. ? For instance, several of our users here were using the C mode of ? GNU, and I noticed that those copies of emacs were using LOTS more ? cpu than users using the fundmental mode. Other frequently used ? functions are written in LISP as well. Semi-true. The `lisp' is `compiled' but not to machine code. So while the `compiled lisp' *is* interpreted, all the parentheses and symbol scanning/lookups have been done. It is much like emulating another machines assembly language by `executing' the `object code'. Since editors are mostly I/O bound, this seldom hurts. (Root Boy) Jim Cottrell National Bureau of Standards Flamer's Hotline: (301) 975-5688 .. are the STEWED PRUNES still in the HAIR DRYER?