drk@athena.mit.edu (David R Kohr) (02/04/90)
We have recently gotten Gnu Emacs (v. 18.55, I think) running on our Sun 3's and Sun 4's. I had heard that Gnu Emacs was a memory hog, so I checked out the size of the executables with "size", and found out that there was approximately 1 Mb. of code (text segment--this figure is somewhat larger on the Sun 4) and only around 20 Kb. of data (data segment). Yet when running Gnu Emacs, and using the "vmstat" command to try to estimate the real average per-copy memory usage of several separate running copies (i.e., Gnu Emacs processes, invoked by separate login processes), I found that only about 200 Kb. of actual memory was being used. "ps -u" reported similar figures. So where was all of that 1 Mb. of code? Is each running copy of Emacs sharing the text segment with all the other running copes (which is perfectly feasible, for non-self-modifying code), or is something else happening? David R. Kohr M.I.T. Lincoln Laboratory Group 45 ("Radars 'R' Us") email: KOHR@LL.LL.MIT.EDU or DRK@ATHENA.MIT.EDU phone: (617)981-0775 (work), (617)527-3908 (home)
mikef@sarah.lerc.nasa.gov (Mike J. Fuller) (02/04/90)
In article <1990Feb3.161555.13925@athena.mit.edu> drk@athena.mit.edu (David R Kohr) writes: >Is each running copy of Emacs sharing the text segment with all the other >running copes (which is perfectly feasible, for non-self-modifying >code), or is something else happening? Yes, SunOS 4.* has shared text. The text is also demand-paged from the executable (unless you make it a pure executable by using the -n option on ld when you link it). And about self-modifying code -- the text segment is read-only (unless you use the -N option on ld to make it read-write). I don't know about SunOS < 4.*, BSD or SysV. /-----------------------------------------------------------------------------\ | Mike J. Fuller |Internet: mikef@sarah.lerc.nasa.gov |You'd be paranoid, | |----------------| mikef@zippysun.math.uakron.edu|too, if everyone | |/\/\/\/\/\/\/\/\|Bitnet: r3mjf1@akronvm |was out to get you!| \-----------------------------------------------------------------------------/