मैं अपने कोड का एक स्निपेट टाइम करना चाहता हूं, और मुझे केवल सीपीयू निष्पादन समय चाहिए (ऑपरेटिंग सिस्टम प्रक्रियाओं को अनदेखा करना आदि)।एक अजगर कार्यक्रम के CPU समय का समय?
मैंने time.clock() की कोशिश की है, यह बहुत ही कमजोर प्रतीत होता है, और हर बार एक अलग जवाब देता है। (सिद्धांत रूप में निश्चित रूप से यदि मैं इसे एक ही कोड स्निपेट के लिए फिर से चलाता हूं तो उसे वही मान वापस करना चाहिए ??)
मैंने लगभग एक घंटे के लिए समय-समय पर खेला है। अनिवार्य रूप से जो मेरे लिए इसे मारता है वह "सेटअप" प्रक्रिया है, मैं लगभग 20 कार्यों को आयात करना चाहता हूं जो अव्यवहारिक है क्योंकि मैं व्यावहारिक रूप से बस सेटअप कोड में अपना कोड पुनः लिखने और उपयोग करने के लिए लिख रहा हूं।
सीप्रोफाइल अधिक से अधिक आकर्षक लग रहे हैं, लेकिन क्या वे CPU समय लौटाते हैं? भी, एक मामूली बिंदु - यह बहुत अधिक जानकारी के तरीके outputs। क्या आउटपुट की गई जानकारी को txt या .dat फ़ाइल में प्राप्त करने का कोई तरीका है, इसलिए मैं इसे वास्तव में पढ़ सकता हूं?
चीयर्स
ओएस: उबंटू कार्यक्रम: अजगर 2.7
ध्यान दें कि आपको प्रत्येक दौड़ के लिए अलग-अलग समय मिलेंगे, भले ही आप केवल अपनी प्रक्रिया द्वारा खाए गए सीपीयू चक्रों को गिनना चाहते हों। यह सीपीयू कैश की वजह से है, जो हर समय अलग-अलग राज्य (आपके पता स्थान के विभिन्न हिस्सों वाले) में समाप्त हो जाएगा। सीपीयू कैश प्रक्रियाओं के बीच साझा किया जाता है, इसलिए आप गारंटी नहीं दे सकते कि उदाहरण के लिए हर बार जब आप अपना कोड चलाएंगे, तो एक निश्चित चर को कैश में रखा जाएगा। – liori
[resource.getrusage] (http://docs.python.org/2/library/resource.html) का उपयोग पायथन 2.7 – Annan