Я использую Python, чтобы очистить веб-сайт от конкретных ссылок или ключевых слов, и хочу отправлять запрос каждые 5 секунд. Первоначально я использовал цикл while True
для отправки моих запросов каждые 5 секунд, но с каждым циклом моя программа использовала примерно на 1 МБ памяти больше, чем раньше. Если я захочу запустить свою программу на Raspberry Pi в течение нескольких дней, это довольно быстро заполнит память.
Вместо использования цикла while True, как только моя программа прошла через весь код, который я использую
os.system("python program.py")
для перезапуска программы, то есть повторное выполнение кода снова и снова не будет занимать память и останется в среднем около 38 МБ.
Итак, мой вопрос: есть ли у меня недостаток в этом? Могут ли возникнуть какие-либо проблемы, если я хочу, чтобы мой компьютер запускал новый экземпляр программы каждые 5 секунд в течение нескольких дней?
РЕДАКТИРОВАТЬ: добавлен код
import requests
from bs4 import BeautifulSoup, SoupStrainer
import time
import os
import psutil
while True:
url = "https://en.wikipedia.org/wiki/Main_Page"
source = requests.get(url).text
soup = BeautifulSoup(source, 'lxml')
for link in soup.find_all("a"):
print(link.get('href'))
time.sleep(5)
process = psutil.Process(os.getpid())
print(process.memory_info().rss)
time.sleep(5)