Рет қаралды 60
The talk explores GHC's garbage collector (GC) and its agenda includes: (1) How allocation occurs in typical Haskell programs; (2) GC algorithms in the runtime, namely: (a) the moving GC; (b) the generational GC; and (c) lesser-known and less-used GC algorithms - mark, sweep, and compact; and (3) additional facts and tips about GC applicable in production, namely: (a) the problem of GC synchronization; (b) static closures and their implications for the GC; (c) weak pointers; (d) methods to keep a closure alive at a certain point in the program; (e) the compact regions feature; (f) how to gather statistics about the GC in your program; and (g) how to tune specific runtime GC options.