यह मुझे थोड़ी देर के तारों के रूप में अजगर कोड के आसपास पास करने का annoyingness के कारण रोलाण्ड के समाधान को लागू करने के ले लिया है, इसलिए मैंने सोचा कि मैं एक काम उदाहरण का हिस्सा चाहते हैं।
यह स्क्रिप्ट बार काम कर निर्देशिका में एक बाहरी प्रोग्राम, और इसके मानक उत्पादन और फ़ाइलों के लिए मानक त्रुटि पुनर्निर्देश।
from timeit import timeit
reps = 500
stdout = open("add_numbers_outputs.log", 'w')
stderr = open("add_numbers_errors.log", 'w')
external_command = "./add_numbers"
parameter = str(1000000) # one million
call_arguments = """[
'%s',
'%s'], # pass additional parameters by adding elements to this list
stdout=stdout,
stderr=stderr
""" % (external_command, parameter)
print "Timing external command "+external_command+" with parameter "+parameter
time_taken = timeit(stmt = "subprocess.call(%s)" % call_arguments,
setup = """import subprocess;
stdout = open("add_numbers_outputs.log", 'w');
stderr = open("add_numbers_errors.log", 'w')
""",
number = reps)/reps
print "Average time taken for %s repetitions: %f seconds" % (reps, time_taken)
धन्यवाद! यह काफी जानकारीपूर्ण है! :) – Frost
यह उत्तर टाइमिंग पायथन कोड के लिए ठीक दिखता है, लेकिन यदि हम उपप्रोसेस चला रहे हैं, तो यह सटीक नहीं हो सकता है, क्योंकि Popen.wait() व्यस्त लूप का उपयोग करता है। [https://docs.python.org/dev/library/subprocess.html#subprocess.Popen.wait] – ggg
@ggg यह सुनिश्चित नहीं है कि यह वास्तव में एक समस्या है: Popen.wait() को वर्तमान प्रक्रिया में चलाना चाहिए। इसलिए, बाल प्रक्रियाओं का संसाधन उपयोग प्रभावित नहीं होना चाहिए। – Steohan