2012-12-14 7 views
32

जब मैं -fprofile-generate सक्षम करता हूं और वास्तव में एकत्रित जानकारी का उपयोग करता है (-fprofile-use ध्वज सेट करते समय कौन सा अनुकूलन वास्तव में उपयोग करता है) जीसीसी एकत्र करता है?जीसीसी प्रोफाइल मार्गदर्शित अनुकूलन (पीजीओ) किस जानकारी को एकत्र करता है और कौन सा अनुकूलन इसका उपयोग करता है?

मुझे यहां उद्धरणों की आवश्यकता है। मैंने थोड़ी देर के लिए खोज की है लेकिन कुछ भी दस्तावेज नहीं मिला है।

लिंक-टाइम अनुकूलन (एलटीओ) के बारे में जानकारी एक प्लस होगी! = डी

उत्तर

29

-fprofile-generate-fprofile-arcs, -fprofile-values और -fvpt सक्षम करता है। http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Optimize-Options.html#Optimize-Options

पुनश्च:

-fprofile-use-fbranch-probabilities, -fvpt, -funroll-loops, -fpeel-loops और -ftracer

स्रोत सक्षम बनाता है। उस पृष्ठ पर एलटीओ के बारे में जानकारी भी।

+0

यह भी सहायक हो सकता है - http://gcc.gnu.org/wiki/PDO –

+0

मैं अभी भी उसी लिंक पर पहुंचा हूं। वैसे भी धन्यवाद। – JohnTortugo

7

--profile-उत्पन्न साथ अलरिक ड्रेपपर https://people.freebsd.org/~lstewart/articles/cpumemory.pdf http://www.akkadia.org/drepper/cpumemory.pdf

द्वारा "क्या हर प्रोग्रामर स्मृति के बारे में पता होना चाहिए" अनुभाग में 7,4

  • संकलन प्रत्येक वस्तु फ़ाइल के लिए .gcno फ़ाइल उत्पन्न करता है। (एक ही फाइल कि gcov कवरेज रिपोर्ट के लिए प्रयोग किया जाता है)
  • तो आप कुछ परीक्षण चलाने चाहिए, रनटाइम के दौरान यह .gcda फाइलों में कवरेज डेटा रिकॉर्ड
  • --profile-उपयोग के साथ
  • recompile: यह कवरेज डेटा इकट्ठा करेगा और यह निष्कर्ष निकाल यदि एक शाखा की संभावना है (__builtin_expect (.., 1) या संभावना नहीं (__builtin_expect (.., 0)

परिणाम तेजी के रूप में यह प्रोसेसर अनुदेश कैश में कोड प्रीफ़ेचिंग में बेहतर होना चाहिए चलाने चाहिए।

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