मैं पाइसरियल का उपयोग कर धारावाहिक पर एक डिवाइस के साथ संवाद करने का प्रयास कर रहा हूं। चूंकि कमांड को लगातार भेजने की आवश्यकता होती है, उन्हें पायथन में थोड़ी देर में रखा जाना चाहिए।कुशल और तेज़ पायथन जबकि नींद का उपयोग करते समय पाश()
मैं वर्तमान में इस कोड का उपयोग कर रहा है, और python process takes 100% CPU पर एक नज़र ले लिया है:
while True:
#do some serial sending here
time.sleep(0.2)
इस कोड काम करता है। हालांकि, भेजने की गति धीमी है। मैंने sleep
अंतराल को कम करके इसे तेज़ी से बनाने की कोशिश की, लेकिन ऐसा लगता है कि सीपीयू को थोड़ा अधिक लोड करना प्रतीत होता है।
संक्षेप में, क्या हमेशा के लिए थोड़ी देर के लूप पर प्रभावी ढंग से पुनरावृत्ति करने का कोई तरीका है, जबकि अभी भी CPU संसाधनों की कम खपत को बनाए रखना है?
इस [पोस्ट] (http://stackoverflow.com/questions/529034/python-pass-or-sleep-for-long-running-processes) के आधार पर, time.sleep बहुत छोटा ओवरहेड है, आप चाहें कोड – xvatar
कोड के अपने सीरियल भेजने के हिस्से की जांच करने के लिए क्या आपने 0.00001 के लिए सोने की कोशिश की है? यह हास्यास्पद प्रतीत हो सकता है, लेकिन वह देरी आपके सीपीयू के लिए दुनिया में सभी दुविधाएं कर सकती है। कृपया इसे आजमाएं। – jakebird451
एक आधुनिक कंप्यूटर एक धारावाहिक बंदरगाह पर पसीना लिखने में कैसे टूट सकता है? धारावाहिक नहीं होगा। सीरियल() लिखते समय लिखते हैं? ऐसा लगता है कि सीपीयू अन्य चीजों को करने के लिए पर्याप्त समय लगता है? – Bittrance