Rewrite memory-limit in Lisp
Have it return Emacs virtual memory size, not the sbrk value which is often useless newadays. * doc/lispref/internals.texi (Garbage Collection): * etc/NEWS: Document this. * lisp/subr.el (memory-limit): New implementation in Lisp, written in terms of process-attributes, and which returns virtual memory size. * src/alloc.c (Fmemory_limit): Remove C implementation.
This commit is contained in:
parent
9af399fd80
commit
ec1b4d9a51
4 changed files with 9 additions and 23 deletions
|
@ -507,10 +507,8 @@ function @code{memory-limit} provides information on the total amount of
|
|||
memory Emacs is currently using.
|
||||
|
||||
@defun memory-limit
|
||||
This function returns the address of the last byte Emacs has allocated,
|
||||
divided by 1024. We divide the value by 1024 to make sure it fits in a
|
||||
Lisp integer.
|
||||
|
||||
This function returns an estimate of the total amount of bytes of
|
||||
virtual memory that Emacs is currently using, divided by 1024.
|
||||
You can use this to get a general idea of how your actions affect the
|
||||
memory usage.
|
||||
@end defun
|
||||
|
|
3
etc/NEWS
3
etc/NEWS
|
@ -664,6 +664,9 @@ socket has been passed to Emacs (Bug#24218).
|
|||
instead of just Microsoft platforms. This fixes a 'get-free-disk-space'
|
||||
bug on OS X 10.8 and later (Bug#28639).
|
||||
|
||||
+++
|
||||
** 'memory-limit' now returns a better estimate of memory consumption.
|
||||
|
||||
+++
|
||||
** New macro 'combine-change-calls' arranges to call the change hooks
|
||||
('before-change-functions' and 'after-change-functions') just once
|
||||
|
|
|
@ -2182,6 +2182,10 @@ It can be retrieved with `(process-get PROCESS PROPNAME)'."
|
|||
(set-process-plist process
|
||||
(plist-put (process-plist process) propname value)))
|
||||
|
||||
(defun memory-limit ()
|
||||
"Return an estimate of Emacs virtual memory usage, divided by 1024."
|
||||
(or (cdr (assq 'vsize (process-attributes (emacs-pid)))) 0))
|
||||
|
||||
|
||||
;;;; Input and display facilities.
|
||||
|
||||
|
|
19
src/alloc.c
19
src/alloc.c
|
@ -7120,24 +7120,6 @@ or memory information can't be obtained, return nil. */)
|
|||
|
||||
/* Debugging aids. */
|
||||
|
||||
DEFUN ("memory-limit", Fmemory_limit, Smemory_limit, 0, 0, 0,
|
||||
doc: /* Return the address of the last byte Emacs has allocated, divided by 1024.
|
||||
This may be helpful in debugging Emacs's memory usage.
|
||||
We divide the value by 1024 to make sure it fits in a Lisp integer. */)
|
||||
(void)
|
||||
{
|
||||
Lisp_Object end;
|
||||
|
||||
#if defined HAVE_NS || defined __APPLE__ || !HAVE_SBRK
|
||||
/* Avoid warning. sbrk has no relation to memory allocated anyway. */
|
||||
XSETINT (end, 0);
|
||||
#else
|
||||
XSETINT (end, (intptr_t) (char *) sbrk (0) / 1024);
|
||||
#endif
|
||||
|
||||
return end;
|
||||
}
|
||||
|
||||
DEFUN ("memory-use-counts", Fmemory_use_counts, Smemory_use_counts, 0, 0, 0,
|
||||
doc: /* Return a list of counters that measure how much consing there has been.
|
||||
Each of these counters increments for a certain kind of object.
|
||||
|
@ -7495,7 +7477,6 @@ The time is in seconds as a floating point value. */);
|
|||
defsubr (&Smake_finalizer);
|
||||
defsubr (&Spurecopy);
|
||||
defsubr (&Sgarbage_collect);
|
||||
defsubr (&Smemory_limit);
|
||||
defsubr (&Smemory_info);
|
||||
defsubr (&Smemory_use_counts);
|
||||
defsubr (&Ssuspicious_object);
|
||||
|
|
Loading…
Add table
Reference in a new issue