मुझे आश्चर्य है कि क्या कोई अतिरिक्त अनुकूलन है जो मैं जावा में प्रतिबिंबित आविष्कार की गति को बेहतर बनाने के लिए कार्यान्वित कर सकता हूं। ऐसा नहीं है कि प्रदर्शन निषिद्ध है, लेकिन लाइब्रेरी में कोड के कुछ टुकड़े के बारे में सोचते समय मुझे इच्छाएं मिलती हैं, मैं कहीं कसकर लूप में लागू किया जा रहा हूं।जावा प्रतिबिंबित विधि आमंत्रण को और अनुकूलित करने का कोई तरीका?
एक उपयोगिता विधि संजीदगी से आह्वान करने के लिए पर विचार करें:
public static Object invoke(Object targetObject, String methodName, Object[] arguments, Class<?>[] signature)
बुनियादी आपरेशन
return method.invoke(targetObject, arguments);
एक प्रदर्शन के अनुकूलन के रूप में है, मैं विधि लक्ष्य वस्तु की क्लास, मेथड नाम का एक हैश का उपयोग कर कैश और हस्ताक्षर (जिसमें से कोड कुछ सुधार का उपयोग कर सकता है) लेकिन उससे परे, क्या मैं और कुछ कर सकता हूं? मैंने InvokeDynamic के कुछ शुरुआती कार्यान्वयन के संदर्भों को सुना है जो ध्वनि का वादा करता है, लेकिन मुझे लगता है कि वे शायद अभी तक लागू नहीं हैं, और मैंने अपने बाइट कोड मैनिपुलेशन को छूट दी क्योंकि मैं उपयोगिता को सरल (लेकिन तेज़) रखना चाहता हूं।
चीयर्स।
वाह मैं उसे कभी नहीं जानता था। मैं उन समय परीक्षण करूँगा। क्या 15 डिफ़ॉल्ट को ओवरराइड करने का कोई तरीका है? कंपाइलर को जल्दी में लात मारने के लिए राजी करने का कोई और तरीका? – Nicholas
बस अपनी पसंद की संख्या में sun.reflect.inflationTreshold संपत्ति सेट करें। –