>>The primary disadvantage is the increased creation of temporary >>objects in current VMs. > > Help me to understand this. Currently, these data structures are declared as > non-final but otherwise have the same semantics (public member access). For > the most part, we wouldn't be changing how they are used, so I don't > understand how this would translate to creation of any more temporary objects > than we currently have. What would cause additional temporary objects to be > created?
If I understand Noel correctly, he's saying that since the objects are immutable, we may be forced to instantiate new objects where we were previously modifying the properties of existing objects. >>Do you have any performance test cases that you use? I could put >>together some changes and see what the numbers look like before and >>after. > > Unfortunately, we don't have any unit tests that would be useful here. But I > think it is reasonably safe to assume that we might see a slight performance > improvement by making this change. IMHO, the performance improvement (or degradation) is likely to be so minor as to not matter - the major advantage is the reduction in developer error and ambiguity. I'm +0.5 on this change. :)
