आप इस Cyberciti लेखschedutils
में वर्णित के रूप में अपने कार्यक्रम को एक कोर में बंद कर सकते हैं :
sudo apt-get install schedutils
sudo taskset -c 3 -p 13545 # Lock PID 13545 to core 3
अन्य प्रक्रियाओं को अभी भी उसी कोर पर निर्धारित किया जा सकता है, हालांकि। तो दूसरी बात यह है कि यह सुनिश्चित करना है कि आपकी कमांड अच्छी कमांड का उपयोग करके सर्वोच्च प्राथमिकता के साथ चलती है (यह लिनक्स कर्नेल को बताएगा कि यदि आवश्यक हो तो अन्य प्रक्रियाओं को पूर्व-खाली किया जाना चाहिए )। इस तरह से अपना कार्यक्रम शुरू करें:
nice -n -20 your-program
आपके समय के मुद्दों के कुछ अन्य संभावित कारण हैं। ये कुछ भी करने में उतने आसान नहीं हैं:
- यदि आप पायथन में प्रोग्रामिंग कर रहे हैं, तो एक कचरा कलेक्टर है जो कभी-कभी अप्रयुक्त मेमोरी को मुक्त करने के लिए आपके कार्यक्रम को रोक देता है।
- रुकावट सीपीयू को आपकी इच्छानुसार कुछ और संभालती है। उदाहरण के लिए, नेटवर्क पैकेट या अन्य इनपुट / आउटपुट।
- यदि आपका प्रोग्राम बहुत सो रहा है तो सीपीयू कैश (एल 1 / एल 2 कैश) को भरने वाली अन्य प्रक्रियाएं हो सकती हैं। यह आपको रैम एक्सेस की प्रतीक्षा करने के लिए मजबूर करता है।
- इससे भी बदतर अगर आपकी रैम भरी हुई है ताकि आपकी प्रक्रिया डिस्क से बाहर हो जाए क्योंकि एसडी कार्ड स्लो हो गए हैं।
आपकी प्रक्रिया को वास्तविक बनाने के तरीके हैं , जिसका अर्थ है कि यह कुछ समय की गारंटी के साथ चलेगा। इसके साथ समस्या यह है कि बाकी सब कुछ धीमा हो सकता है, और यह एक जटिल विषय है। यदि आप इस खरगोश छेद से नीचे जाना चाहते हैं, तो मेरा सुझाव है कि आप लिनक्स में वास्तविक समय प्रक्रियाओं पर पढ़ना शुरू करें ।