summaryrefslogtreecommitdiff
path: root/hadrian/hie-bios
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2023-05-04 12:14:59 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2023-05-04 12:21:46 +0100
commit456fa18048a1f03598d8dc66d03cb4bf322060bf (patch)
tree177a55f9c762119d968bb395236174161ec43d05 /hadrian/hie-bios
parent00a8a5ff9abf5bb1a0c2a9225c7bca5ec3bdf306 (diff)
downloadhaskell-wip/t23221.tar.gz
rts: Refine memory retention behaviour to account for pinned/compacted objectswip/t23221
When using the copying collector there is still a lot of data which isn't copied (such as pinned, compacted, large objects etc). The logic to decide how much memory to retain didn't take into account that these wouldn't be copied. Therefore we pessimistically retained 2* the amount of memory for these blocks even though they wouldn't be copied by the collector. The solution is to split up the heap into two parts, the parts which will be copied and the parts which won't be copied. Then the appropiate factor is applied to each part individually (2 * for copying and 1.2 * for not copying). The T23221 test demonstrates this improvement with a program which first allocates many unpinned ByteArray# followed by many pinned ByteArray# and observes the difference in the ultimate memory baseline between the two. There are some charts on #23221. Fixes #23221
Diffstat (limited to 'hadrian/hie-bios')
0 files changed, 0 insertions, 0 deletions