I noticed some articles ago the program metering.cl for monitoring
lisp code. This code needs a definition of a function BYTES-CONSED.
In the code I could find a definition for allegro-v3.1, v4.0 and v4.1:
#+:allegro-v3.1
(defun bytes-consed ()
(let ((gs (sys::gsgc-map)))
(+ (aref gs 3) ; new space
(let ((sum 0)) ; old space
(dotimes (i (1+ (floor (/ (- (length gs) 13) 10))))
(incf sum (aref gs (+ (* i 10) 13))))
sum)))
)
;;; Allegro V4.0/1. SYS::GSGC-MAP takes one argument, and returns an
;;; array representing the memory state.
#+(or :allegro-v4.0 :allegro-v4.1)
(defvar *gc-space-array* (make-array 4 :element-type '(unsigned-byte 32)))
#+(or :allegro-v4.0 :allegro-v4.1)
(defun bytes-consed ()
(system:gsgc-totalloc *gc-space-array* t)
(aref *gc-space-array* 0))
Does anybody know how to add support for allegro-v6.0?
(unfortunately I cannot find the documentation for the system package.)
thanks, Joachim.