1. A system, comprising: at least one processor; and a memory coupled to the at least one processor, the memory storing: a heap; and a memory manager executable by the at least one processor to perform one or more operations including at least: selectively controlling initiation of at least one of a full garbage collection operation or an ephemeral garbage collection operation based on a total resource usage metric and a managed object metric, wherein the managed object metric is based on one or more runtime characteristics of a managed application that performs runtime calls to the one or more managed objects including at least: determining whether a ratio of the total resource usage metric to the managed object metric is greater than a threshold; when the ratio is greater than the threshold, initiating the full garbage collection operation including at least: suspending the managed application that performs runtime calls to one or more managed objects stored in the heap during the full garbage collection operation; determining whether each of the one or more managed objects in each generation of the heap is a reachable object or an unreachable object; adding the unreachable objects in each generation to a finalizer list; consolidating one or more managed objects that remain in the heap into a contiguous portion of the heap during the full garbage collection operation, including moving the reachable objects to a contiguous portion of the heap; performing the full garbage collection at least partially based on the finalizer list; and restarting execution of the managed application; and when the ratio is not greater than the threshold, performing the ephemeral garbage collection operation without suspending the managed application.