1. A method for dynamically assigning a local allocation buffer to one of a thread and a processor in a garbage-collected computer system, the method comprising: (a) during the operation of the computer system, determining that an amount of memory that remains free in the local allocation buffer is greater than a predetermined threshold; (b) if the local allocation buffer is currently managed by a thread local allocation buffer manager (LABM) associated with the thread, changing, in response to the determination, a management of the local allocation buffer to a processor LABM associated with the processor; and (c) if the local allocation buffer is currently managed by the processor LABM associated with the processor: changing, in response to the determination, the management of the local allocation buffer to a thread LABM associated with the thread; and switching, in response to the determination, from a per-processor memory allocation function to a per-thread memory allocation function, wherein the switching comprises updating a class allocation table by altering the pre-processor memory allocation function to obtain an altered per-processor memory allocation function, wherein the altered per-processor memory allocation function is configured to call the per-thread memory allocation function.