[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] si::*optimize-maximum-pages*
From: |
Camm Maguire |
Subject: |
[Gcl-devel] si::*optimize-maximum-pages* |
Date: |
03 Apr 2004 15:41:32 -0500 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings! Just a quick note to indicate that I've just committed
some changes addressing at least the bulk of the problem you so
helpfully noticed. In brief, GCL will now try to automatically tune
its maximum page allocation per page type given the empirically
observed GBC trigger rates and current sizes for each type. One can
disable this behavior should one be extremely worried about memory
usage by setting the variable si::*optimize-maximum-pages* to NIL.
The default is T.
[ Matt, I'll write you separately when a binary is available for
testing. ]
Please see the comment in alloc.c just added if interested.
Remaining for the future
1) To reexamine the page cost algorithm when SGC is enabled
2) To differentiate the costs of each page type.
In general, this patch
1) fixes your fill-symtab scaling problem. GC load is now
linear/proportional to runtime.
2) Reduces the GC load for maxima make check by about half.
3) Cuts the (save-acl2 time of the acl2 build by about 2/3
4) shaves about 1/4 of the compilation time for AXIOM's
EXPEXPAN.spad.
5) Gives statistics like the following for Paul's random tester:
56 |
14004/14004 3.5% 148 CONS RATIO LONG-FLOAT COMPLEX STRUCTURE
1931/3415 10.5% 20 FIXNUM SHORT-FLOAT CHARACTER RANDOM-STATE READTABLE
NIL
610/1497 14.2% 14 SYMBOL STREAM
1/2 23.1% PACKAGE
3247/3247 1.5% 25 ARRAY HASH-TABLE VECTOR BIT-VECTOR PATHNAME
CCLOSURE FAT-STRING
260/621 10.5% STRING
2542/2542 0.3% 16 CFUN BIGNUM
11/136 84.6% SFUN GFUN CFDATA SPICE NIL
4443/6205 62 contiguous (543 blocks)
26214 hole
23590 0.1% 97 relocatable
22606 pages for cells
76853 total pages
151751 pages available
33540 pages in heap but not gc'd + pages needed for gc marking
262144 maximum pages
real time : 77.140 secs
run-gbc time : 23.790 secs
child run time : 52.420 secs
gbc time : 0.650 secs
versus
56 |
4407/4407 12.2% 589 CONS RATIO LONG-FLOAT COMPLEX STRUCTURE
366/366 56.0% 696 FIXNUM SHORT-FLOAT CHARACTER RANDOM-STATE READTABLE
NIL
212/450 41.0% SYMBOL STREAM
1/2 23.1% PACKAGE
1882/2227 2.5% 39 ARRAY HASH-TABLE VECTOR BIT-VECTOR PATHNAME
CCLOSURE FAT-STRING
131/621 20.9% STRING
515/515 1.3% 27 CFUN BIGNUM
11/136 84.6% SFUN GFUN CFDATA SPICE NIL
6572/8748 61 contiguous (544 blocks)
26214 hole
35385 0.0% 52 relocatable
7525 pages for cells
75696 total pages
141113 pages available
45335 pages in heap but not gc'd + pages needed for gc marking
262144 maximum pages
real time : 47.700 secs
run-gbc time : 17.340 secs
child run time : 29.500 secs
gbc time : 0.610 secs
Feedback/tests/reports most appreciated.
Take care,
Bruno Haible <address@hidden> writes:
> > 2) If type i is the type governing GC due to temporary garbage
> > generation, as in the definition of 'r' above, increase m_i to
> > minimize
> >
> > (R+r)*C
>
> Sounds all right. However only experiments can show how it behaves in
> practice. I have no idea how a dynamical system with 25 variables behaves.
> All I can predict from mathematical theory are dynamical systems with 1 or 2
> variables :-)
>
> Bruno
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gcl-devel] si::*optimize-maximum-pages*,
Camm Maguire <=