[Openmcl-devel] Heap Size

R. Matthew Emerson rme at acm.org
Fri May 12 14:48:01 PDT 2017


> On May 12, 2017, at 2:35 PM, Craig Lanning <craig.t.lanning at gmail.com> wrote:
> 
> I've looked through the documentation and can't seem to find the answer
> to my question.
> 
> I'd like to know if there is a way to increase the Heap size?
> 
> I have a function defined that is run after each GC completes.  This
> function prints the currently used memory and the memory size.
> 
> When my application runs as a delivered image, the post GC message
> shows the memory size as 40,108,032 on a 64 bit Linux system.  I would
> like to set it to something that is considerably larger so that it
> doesn't run the GC as often.
> 
> Is this possible?  If so, how?

Yes.

The functions ccl:lisp-heap-gc-threshold, ccl:set-lisp-heap-gc-threshold, and ccl:use-lisp-heap-gc-threshold can do this.

https://ccl.clozure.com/docs/ccl.html#garbage-collection-dictionary


For example:

? (lisp-heap-gc-threshold)
33554432
? (set-lisp-heap-gc-threshold (* 2 33554432))
67239936
? (room)
Approximately 33,292,288 bytes of memory can be allocated 
before the next full GC is triggered. 

                   Total Size             Free                 Used
Lisp Heap:     16815357952 (16421248K)   33292288 (32512K) 16782065664 (16388736K)
Stacks:          11211656 (10949K)   11204424 (10942K)       7232 (7K)
Static:          21497872 (20994K)          0 (0K)       21497872 (20994K)
360763.620 MB reserved for heap expansion.
NIL
? (use-lisp-heap-gc-threshold)
NIL
? (room)
Approximately 67,239,936 bytes of memory can be allocated 
before the next full GC is triggered. 

                   Total Size             Free                 Used
Lisp Heap:     16849305600 (16454400K)   67239936 (65664K) 16782065664 (16388736K)
Stacks:          11211656 (10949K)   11204424 (10942K)       7232 (7K)
Static:          21497872 (20994K)          0 (0K)       21497872 (20994K)
360731.250 MB reserved for heap expansion.
NIL







More information about the Openmcl-devel mailing list