2013-08-20 4 views
15

हॉटस्पॉट का tiered compilation दुभाषिया का उपयोग करता है जब तक कि इनवॉशंस (विधियों के लिए) या पुनरावृत्तियों (लूप के लिए) एक सीमा संकलन के साथ क्लाइंट संकलन को ट्रिगर नहीं करता है। क्लाइंट संकलन का उपयोग तब तक किया जाता है जब तक कि आमंत्रण या पुनरावृत्तियों की एक और दहलीज सर्वर संकलन को ट्रिगर नहीं करती है।कंपाइल थ्रेसहोल्ड, टियर 2 कॉम्पाइल थ्रेसहोल्ड, टियर 3 कॉम्पाइल थ्रेसहोल्ड और टियर 4 कॉम्पाइल थ्रेसहोल्ड नियंत्रण क्या करता है?

Printing HotSpot's flags निम्नलिखित ध्वज मूल्यों को दिखाता है -XX: + TieredCompilation।

intx CompileThreshold  = 10000 {pd product}   
intx Tier2CompileThreshold = 0  {product}   
intx Tier3CompileThreshold = 2000 {product}   
intx Tier4CompileThreshold = 15000 {product}   

केवल क्लाइंट और सर्वर कंपाइलर के लिए बहुत सारे झंडे हैं। इन झंडे से किस कंपाइलर नियंत्रित होते हैं? यदि ग्राहक और सर्वर नहीं है, तो अतिरिक्त कंपाइलर्स का उद्देश्य क्या है?

संकलन थ्रेसहोल्ड और Tier2CompileTreshold इस मामले में अनदेखा कर रहे हैं? क्लाइंट संकलन ट्रिगर होने पर Tier3CompileTreshold नियंत्रण क्या करता है? सर्वर संकलन ट्रिगर होने पर Tier4CompileTreshold नियंत्रण क्या करता है?

उत्तर

18

advancedThresholdPolicy.hpp में टिप्पणियां विभिन्न कंपाइलर स्तरों और थ्रेसहोल्ड पर चर्चा करती हैं। एक गहरी चर्चा के लिए उस फ़ाइल को देखें।

प्रणाली 5 निष्पादन स्तरों का समर्थन करता है:

  • टीयर 0 - दुभाषिया
  • टीयर 1 - पूर्ण अनुकूलन (कोई रूपरेखा)
  • टीयर 2 के साथ C1 - सी 1 मंगलाचरण और backedge काउंटरों के साथ
  • टियर 3 - सी 1 पूर्ण प्रोफाइलिंग के साथ (स्तर 2 + एमडीओ)
  • टियर 4 - सी 2

सी 1 क्लाइंट कंपाइलर है। सी 2 सर्वर कंपाइलर है।

सामान्य मामले में, संकलन चला जाता है: 0 → 3 → 4. अटैचिकल मामलों का उपयोग सी 1 और सी 2 कतार लंबाई के आधार पर किया जाता है। टियर 2 का उपयोग तब किया जाता है जब सी 2 कतार की लंबाई बहुत लंबी होती है ताकि जब तक सी 2 प्रोफाइलिंग प्रक्रिया को संसाधित नहीं कर लेता है तब तक विधि लगभग 30% तेज हो सकती है। यदि विधि तुच्छ होने के लिए निर्धारित की जाती है, तो इसे टियर 1 के साथ संकलित किया जाता है क्योंकि यह टियर 4 के समान कोड उत्पन्न करेगा।

थ्रेसहोल्ड को सी 1 और सी 2 कतारों की लंबाई के आधार पर गतिशील रूप से समायोजित किया जाता है।

संबंधित मुद्दे