私のアプリケーションの 1 つで、次のものを使用しています。
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);
}
...
}
これはパフォーマンスの向上になりますか、それとも本当に違いはありませんか?
前もって感謝します