Number: 2054

Date:  5-Sep-84 12':36':56

Submitter: Masinter

Source: Sheil, Kaplan

Subject: Tune array allocator parameters to minimize fragmentation

Assigned To: 

Attn: JonL, Kaplan

Status: Open


Problem Type: Performance

Impact: Moderate

Difficulty: Moderate

Frequency: Everytime

Priority: Hopefully

System: Language Support

Subsystem: Storage Formats/Mgt

Machine: 1132


Lisp Version:  4-Sep-84 19':45':00

Source Files: 

Microcode Version: 5124

Memory Size: 4096

File Server: 

Server Software Version: 


Description: [spawned from AR#819]. Much performance tuning remains on the array allocator'
Date': 24-Jul-84 21':33':57 PDT'
Subject': Array changes?'
To': Masinter'
If you are really going in to work on the bucket scheme, there are 2 other things that I think ought to be done':'
1.  Pick off the case where NCELLS=1 and GCTYPE=UNBOXED and give back a (CREATECELL \FIXP).  No use having all the extra overhead words and fragmentation due to such small blocks when there already exists an MDS type that will do just as well.'
2.  Change the allocator to traffic internaly in quad-word block sizes.  I.e., (FOLDHI NCELLS CELLSPERQUAD) to begin with, and adjust the various constants and macros to do \ADDBASE4 instead of \ADDBASE2.  This will mean that the quad-word alignment won''t have to be enforced, and also that hasharrays (also double pointer arrays) can be twice as long.'
Number 1 is easy and cost-free.  2 is harder, maybe not for this time around, but if you feel ambitious and want to help hashing...'


Test Case: