В одном из моих приложений я использую следующее:
public void calculate (String className)
{
...
Class clazz = Class.forName(className);
...
}
Эта функция вызывается несколько раз/секунду. Существует около 10 возможных имен классов. И хотя я действительно понимаю, что внутри этой функции есть внутреннее кэширование, Я думаю, что это кэширование доступно только на собственном уровне.
По этой причине я начинаю задаваться вопросом, добавить ли я свое собственное кэширование.
private static Map<String,Class> classMap;
public void calculate (String className)
{
...
Class clazz = classMap.get(className);
if (clazz == null)
{
clazz = Class.forName(className);
if (classMap == null) classMap = new HashMap<String, Class>(40);
classMap.put(className, clazz);
}
...
}
Будет ли это усиление производительности или это действительно не имеет значения?
Заранее благодарю