Dynamic Optimizations for SBCL Garbage Collection

Ethan H. Schwartz · 2018

Using a garbage collected language poses a challenge for latency- sensitive applications. The garbage collector is an integral part of a lisp implementation; optimizing or replacing the GC may be infeasible without a substantial rewrite of the lisp compiler/runtime. By taking advantage of the container which many modern processes run inside we can tune the garbage collector only to keep the lisp process's heap within the bounds provided by the container. We make 3 simple changes to SBCL's generational garbage collector which result in improved application performance. We find that the application's runtime throughput and latency are improved, with less time spent in the GC, and that behavior in a multi-core environment is improved.

Read the paper · More papers on PaperTik