In my test, when using Object3D.shareCompiledData , the usage of memory will decrease for some Object3Ds but increase for another Object3Ds. I don't know if the format of models will affect this(I use 2 formats: .obj and .ser). I got the result by android's log:
10-13 18:24:54.970: D/dalvikvm(7816): GC_CONCURRENT freed 700K, 47% free 3582K/6727K, external 5000K/5097K, paused 2ms+2ms
And the decreased\increased memory is external memory.
My code:
public static Object3D clone(Object3D src, boolean shareVBO, boolean shareTexture){
Object3D ret = src.cloneObject();
if(shareVBO)
ret.shareCompiledData(src);
if(shareTexture)
ret.shareTextureData(src);
return ret;
}
for(int i = 0; i < num; ++i){
clone[i] = clone(srcObj, true, true);
world.addObject(clone[i]);
}