1. A method comprising: receiving, by a processing device executing a virtual machine, bytecode comprising an object to be loaded into a memory space, the object being tagged with a garbage collection descriptor, wherein the garbage collection descriptor is generated according to an annotation to the object in a source code; determining, in view of the garbage collection descriptor, a region of the memory space to store the object, wherein the memory space comprises a first region to store a first set of objects that have survived less than a pre-determined number of rounds of garbage collection and a second region to store a second set of objects that have survived at least the pre-determined number of rounds of garbage collection in the first region; and storing the object in the region of the memory space.