Actor garbage collection is the mechanism used to reclaim useless actors. A system can fail because of memory leakage, resulting from uncollected garbage actors. Manual garbage collection can solve this problem if an application does not require a lot of dynamic memory allocation operations, however it is error-prone and can reduce programmers' efficiency. As the size of the application becomes larger and more complex, automatic garbage collection becomes preferable, because faulty manual garbage collection can cause memory security issues. Additionally, manual garbage collection is contrary to high-level programming. From the perspective of software engineering, there should be a focus on the development of functionalities, not on concerns which can be effectively automated. The garbage collection mechanism used by SALSA is automatic.
Many object-oriented programming languages support automatic garbage collection, such as Smalltalk, Scheme, and Java. Unfortunately, these garbage collection algorithms cannot be used for actor garbage collection directly, because actors encapsulate a thread of control that repeatedly waits for incoming messages to process, and these approaches do not collect active objects. The encapsulated thread of control results in the essential difference of actor garbage collection and object garbage collection.