Trigger garbage collection on external signal
Motivation
For memory-intensive applications, GHC garbage collection is frequently lagging behind new allocations, leading to a constant increase in memory utilization that is not released back to the OS.
Proposal
Enable the garbage collector to listen to an external signal (e.g. SIGUSR1), which would trigger a thorough cleanup and memory compaction, releasing the memory to the OS. Without this capability, long-running services have to be periodically restarted to maintain high performance, but this causes downtime (which is typically expected to be orders of magnitude higher than the downtime caused by a thorough GC).