Garbage Collection Algorithms: Mark Sweep, Generation Hypothesis and JIT code injection