The caching was enough to make the function SceneCache::sampleEntry to disappear from the profile of the SceneShape for one specific scenario (already using my objectCache branch). It was taking 8% of the time. I don't have another scenario where we would need to improve it further. On the other hand, I haven't tried to replace in sampleEntry the format by, let's say sprintf, to see if that would reduce the 8% independently of the cache. I can do a quick check on that. But I think there are other places ( Group::save ) where we generate those numeric strings, so I thought it would be just neater to have a constructor for it.