Changes between Version 2 and Version 3 of Commentary/HeapAlloced
- Timestamp:
- 01/30/09 03:10:33 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Commentary/HeapAlloced
v2 v3 17 17 We should consider how to speed up `HEAP_ALLOCED()` for large heaps on 64-bit machines. This involves some kind of cache arrangement - the memory map is like a page table, and we want a cache that gives us quick access to commonly accessed parts of that map. 18 18 19 The attached patchimplements one such scheme. Measurements show that it slows down GC by about 20% for small heaps (hence it wasn't committed), though it would probably speed up GC on large heaps.19 [attachment:faster-heap-alloced.patch.gz] implements one such scheme. Measurements show that it slows down GC by about 20% for small heaps (hence it wasn't committed), though it would probably speed up GC on large heaps. 20 20 21 21 == Eliminating `HEAP_ALLOCED` completely == … … 27 27 ELF sections can be arbitrarily aligned. So we could put all our static closures in a special section, align the section to 1MB, and arrange that there is space at the beginning of the section for the block descriptors. 28 28 29 This almost works (see attached patch), but sadly fails for shared libraries: the system dynamic linker doesn't honour section-alignment requests larger than a page, it seems.29 This almost works (see [attachment:eliminate-heap-alloced.patch.gz]), but sadly fails for shared libraries: the system dynamic linker doesn't honour section-alignment requests larger than a page, it seems. 30 30 31 31 === Method 2: copy static closures into a special area at startup ===
