के बीच कोई प्रदर्शन अंतर मेरे पास कोड है जो मुख्य रूप से एकल-परिशुद्धता फ़्लोटिंग पॉइंट संख्याओं के साथ काम करता है। पारस्परिक कार्यों के लिए कॉल काफी बार होता है। अभी, मैं पाप(), cos(), sqrt(), आदि का उपयोग कर रहा हूं - जो फ़ंक्शन स्वीकार करते हैं और double
लौटाते हैं। जब इसे केवल x87 के लिए संकलित किया जाता है, तो मुझे पता है कि एकल और डबल परिशुद्धता के बीच कोई अंतर नहीं है। मैंने एग्नेर फोग की ऑप्टिमाइज़ेशन गाइड में पढ़ा है हालांकि एसएसई निर्देशों का उपयोग करने वाले इन फ़ंक्शन के सॉफ़्टवेयर संस्करण एकल-परिशुद्धता फ़्लोटिंग पॉइंट नंबरों के लिए तेज़ हैं।sinf(), cosf() और sin(), cos()
float x = 1.23;
float y = sin(x);
या गोलाई नियम इस तरह के एक अनुकूलन रोकता है:
मेरा प्रश्न है, जब यह की तरह कुछ का सामना करना पड़ता है कि क्या संकलक स्वचालित रूप से तेजी से समारोह का प्रयोग करेंगे है?
केवल खोज-और-प्रतिस्थापन करने के लिए पर्याप्त आसान होगा और देखें कि कोई प्रदर्शन लाभ है या नहीं। समस्या यह है कि मुझे इन कार्यों के लिए पॉइंटर्स की भी आवश्यकता है। एमएसवीसी में, sinf(), cosf(), और दोस्तों इनलाइन फ़ंक्शन हैं। इसलिए उनका उपयोग करने के लिए जिमनास्टिक की थोड़ी आवश्यकता होगी। प्रयास करने से पहले, मैं जानना चाहता हूं कि यह सार्थक है या नहीं।
एमएसवीसी के अलावा, मैं जीसीसी को भी लक्षित कर रहा हूं।
क्या आप वाकई इन कार्यों को कॉल करते हैं, वास्तव में एक मंदी और मूल्य बर्बाद करने के लायक हैं? क्या आपका अपना प्रोफाइल प्रोफाइल है? –