The class Cache avoids the repeated loading and parsing of xml and obj files as well as textures. However, we still copy a lot of data that could be shared (for example, every mesh stores all its vertices, even if there are several identical meshes).
Also, the cache does not delete unused resources.