मैं कुछ अजगर कोड के अनुकूलन किया गया था, और करने की कोशिश की निम्न प्रयोग:पाइथन में अतिरिक्त से अधिक घटाव क्यों तेज है?
import time
start = time.clock()
x = 0
for i in range(10000000):
x += 1
end = time.clock()
print '+=',end-start
start = time.clock()
x = 0
for i in range(10000000):
x -= -1
end = time.clock()
print '-=',end-start
दूसरा पाश मज़बूती से तेजी से होता है, मामूली से कहीं भी 10% तक, प्रणाली मैं इस पर चलाने के आधार पर। मैंने लूप्स, निष्पादन की संख्या इत्यादि के क्रम को बदलने की कोशिश की है, और यह अभी भी काम करता प्रतीत होता है। जब पाश सामग्री समान हैं
अजनबी,
for i in range(10000000, 0, -1):
(यानी पाश पीछे की ओर चल) से अधिक तेजी से
for i in range(10000000):
भी है।
क्या देता है, और यहां एक और सामान्य प्रोग्रामिंग सबक है?
क्या आपने 'रेंज()' के बजाय 'xrange() 'के साथ यह कोशिश की है, इसलिए पाइथन को दस मिलियन पूर्णांक के लिए स्थान आवंटित करने की आवश्यकता नहीं है? साथ ही, क्या आप इसे पायथन 2.x या पायथन 3.x पर चला रहे हैं, जिसमें 'श्रेणी()' के महत्वपूर्ण कार्यान्वयन हैं? –
क्या यह संभव है कि आप इस कोड को चर आवृत्ति वाले CPU पर चलाएं? – tzot