Methods and apparatuses enable separate management of shared data
structures and shared data objects referenced by the shared data
structures. The shared data structures are stored in a first memory, and
the shared data structures are separately managed from the referenced
shared data objects. The shared data objects can be accessed by the
shared data structures via direct and/or indirect reference. A separation
agent can detect references to data objects in an application to indicate
which data objects are shared and are to be stored in the separate cache.