BUI interactive performance analysis of the ops-center product at scale has shown that
there are significant slow-downs in the BUI interactions due to the time spent in ObjectName creation.
This in turn turns out to be due to the call to String.intern() in the ObjectName for the canonical string.
String.intern() is designed for constant strings, it's implemented in C/C++ in the hotspot core code, and it has a fixed-size hashmap of around 20K entries and if more than this number of strings are interned, the performance degrades linearly since there are hash collisions and the code has to search down linked lists.
Ops Center, when managing ~500 systems, had approx 70000 ObjectNames and hence the String.intern() calls from ObjectNames are completely overloading the hashmap, making
each call to String.intern() extremely expensive.
By dropping this intern, we were able to speed up certain complex calls which weren't just manipulating ObjectNames by a factor of 2.