Форум сайта python.su
Добрый день, подскажите пожалста.
Написал простой скрипт который мониторит что на serial, если есть туда залетает пропуск, то отправляет GET на добавление нового сотрудника в базу данных. Скрипт занимает 30% ЦП, i3-3220, это нормально?
#! /usr/bin/python3 #coding: utf-8 import serial import string import time import webbrowser s = serial.Serial('com15', 9600, bytesize=8, parity='N', stopbits=1, timeout=1) while True: last = '' for byte in s.read(s.inWaiting()): last += chr(byte) if (len(last) > 5): print (last) url = 'http://192.168.2.110/dashboard3/base_new.php?prop='+last webbrowser.register('firefox', None, webbrowser.BackgroundBrowser("C://Program Files//Mozilla Firefox//firefox.exe")) webbrowser.get('firefox').open(url)
Офлайн
поставил
while True: time.sleep(0.02)
и красота пошла
спасибо
Офлайн
> Скрипт занимает 30% ЦП, i3-3220, это нормально?
Это нормально. Что бы процессор не нагружался можно добавить небольшую задержку через time.sleep в тело первого цикла.
P.S. Создавать GET запрос через веб броузер как то не камельфо.
Офлайн
shiyriА вы попробуйте написать программу с одним пустым циклом, то есть просто бесконечный while, который вообще ничего не делает, только бесконечно крутится и посмотрите на нагрузку процессора. Процессору то пофигу вообще, есть ли здравый смысл в вашей программе или нет. Пустой цикл, это некоторый набор инструкций, например такой
это нормально?
4 0 SETUP_LOOP 10 (to 13) >> 3 LOAD_GLOBAL 0 (True) 6 POP_JUMP_IF_FALSE 12
Офлайн