Currently, storage of collections, especially Map/Set, are not terribly efficient. One problem is that during deserilaization, the hashcode() function of all keys is called when they are added to a map/set.
This is partially done to avoid problems with schema compatibility between different Java versions.
Solution:
We could provide custom implementations. However these may have to be different for different Java versions, like Java 6, 7, 8...
We could try to use the Serialize/Externalize function, possibly by providing a 'Stream' that replaces references to FCOs withd OIDs. This may still cause problems if the serializableVersionUID changes.
We definitly should provide our own optimized implementations of SCO-HashMap/Set. We then could use these and replace Java-HashMap/Set on the fly, unless the user specifies otherwise.
Currently, storage of collections, especially Map/Set, are not terribly efficient. One problem is that during deserilaization, the hashcode() function of all keys is called when they are added to a map/set. This is partially done to avoid problems with schema compatibility between different Java versions.
Solution:
The last options sounds like the best.