2012-11-08 16 views
11

में प्रिंट स्टेटमेंट का उपयोग करने का प्रदर्शन प्रभाव मेरे पास एक पाइथन स्क्रिप्ट है जो एक विशाल टेक्स्ट फ़ाइल (लगभग 4 मिलियन लाइनों के साथ) को संसाधित करती है और डेटा को दो अलग-अलग फ़ाइलों में लिखती है।पायथन स्क्रिप्ट

मैंने एक प्रिंट स्टेटमेंट जोड़ा है, जो डिबगिंग के लिए प्रत्येक पंक्ति के लिए एक स्ट्रिंग आउटपुट करता है। मैं जानना चाहता हूं कि प्रदर्शन परिप्रेक्ष्य से यह कितना बुरा हो सकता है?

यदि यह बहुत खराब हो रहा है, तो मैं डिबगिंग लाइन को हटा सकता हूं।

संपादित

ऐसा लगता है कि 4 लाख लाइनों के साथ एक फ़ाइल की हर पंक्ति के लिए एक प्रिंट बयान होने समय बढ़ता जा रहा है जिस तरह से बहुत ज्यादा।

+4

इसे आज़माएं और खुद के लिए देखें? – NPE

+3

'timeit' http://docs.python.org/2/library/timeit.html – wim

+0

यह धीमा हो जाएगा क्योंकि आपको बड़ी संख्या में प्रिंट करने की ज़रूरत है, कोई अतिरिक्त प्रसंस्करण कुछ प्रदर्शन जुर्माना लगाएगा। –

उत्तर

16

सिर्फ मनोरंजन के लिए एक बहुत ही सरल लिपि में यह कर की कोशिश की, अंतर काफी चौंका देने वाला है:

large.py में:

target = open('target.txt', 'w') 

for item in xrange(4000000): 
    target.write(str(item)+'\n') 
    print item 

समय यह:

[[email protected] /tmp]$ time python large.py 
real 1m51.690s 
user 0m10.531s 
sys  0m6.129s 

[email protected] /tmp]$ ls -lah target.txt 
-rw-rw-r--. 1 gp gp 30M Nov 8 16:06 target.txt 

अब चल रहा है "प्रिंट" के साथ ही टिप्पणी की गई:

[email protected] /tmp]$ time python large.py 
real 0m2.584s 
user 0m2.536s 
sys  0m0.040s 
+2

और जब आप लिखते हैं, प्रिंट में छोड़ें, और '> target.txt' के साथ चलाएं? – Tim

+0

@ टिम: विचित्र रूप से पर्याप्त रूप से यह तेजी से काम करता है, लेकिन यह हो सकता है कि जब मैं इसे पहले चलाता था, तो मेरी मशीन कम व्यस्त होती है, अब अधिक ध्वनि सांख्यिकीय दृष्टिकोण का उपयोग करने के लिए इसे कई बार चलाने के लिए समय नहीं है। [जीपी @ imdev1/tmp] $ समय अजगर large.py> target.txt असली \t 0m1.954s उपयोगकर्ता \t 0m1.897s sys \t 0m0.049s – GSP

+4

एक फाइल करने के लिए stdout पुनः निर्देशित बहुत तेजी से, वास्तव में हो जाएगा आप एक फ़ाइल को निर्देशित कर सकते हैं और स्क्रीन पर एक बड़ी मात्रा में आईओ को फैलाने के लिए फ़ाइल को कम समय में एक संपादक में खोल सकते हैं। – agentp

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