1. A method for compacting memory within a computing device, wherein the computing device supports transient objects having a persistent portion stored in a writeable non-volatile memory and a transient portion stored in a volatile memory, the method comprising: resetting the volatile memory so that information in the volatile memory is deleted; scanning through a list of objects, wherein the list of objects is stored in the non-volatile memory; and for each transient object encountered in the list of objects, allocating space for the transient object in the volatile memory, and updating the persistent portion of the transient object, if necessary, to specify a new location in volatile memory for the transient portion of the transient object.