मैं कुछ समय से यह सोच रहा था। जैसा कि शीर्षक कहता है, जो तेज है, वास्तविक कार्य या बस आधी शक्ति तक बढ़ा रहा है?
अपडेट करें
यह समय से पहले अनुकूलन का मामला नहीं है। यह केवल एक सवाल है कि अंतर्निहित कोड वास्तव में कैसे काम करता है। पायथन कोड कैसे काम करता है इसका सिद्धांत क्या है?
मैंने गुइडो वैन रोसुम को एक ईमेल कारण भेजा है जो मैं वास्तव में इन तरीकों में अंतर जानना चाहता था।
मेरी ई - मेल:
पायथन में एक वर्गमूल करने के लिए कम से कम 3 तरीके हैं: math.sqrt, '**' ऑपरेटर और पॉव (x, .5)। मैं इनमें से प्रत्येक के कार्यान्वयन में अंतर के रूप में उत्सुक हूं। जब दक्षता की बात आती है जो बेहतर है?
उनकी प्रतिक्रिया:
पाउ और ** बराबर हैं; math.sqrt जटिल संख्या और C sqrt () फ़ंक्शन के लिंक के लिए काम नहीं करता है। जैसा कि एक तेज है, मुझे पता नहीं है ...
math.sqrt
एक अधिक अनुकूलित दिनचर्या है (जैसा कि यह है) और इरादे को और अधिक स्पष्ट रूप से व्यक्त करता है, तो इसे हमेशा प्राथमिकता दी जानी चाहिए x**.5
। यह जानने के लिए कि आप क्या लिखते हैं, यह समय से पहले अनुकूलन नहीं है, और उस विकल्प को चुना जो तेज है और अधिक कोड स्पष्टता प्रदान करता है। यदि हां, तो आपको समान रूप से अच्छी तरह से बहस करने की आवश्यकता है कि आपने अन्य विकल्पों को क्यों चुना।