我用Python搜索一个网站的特定链接或关键字,并希望每5秒钟发送一个请求。最初,我使用while True
循环每5秒发送一次请求,但每次循环我的程序都比以前多使用了大约1mb的内存。由于我想在一个树莓圆周率上运行我的程序可能要运行几天,这会很快填满内存。你知道吗
而不是使用while-True循环,一旦我的程序运行完我使用的所有代码
os.system("python program.py")
重新启动程序,意味着一遍又一遍地运行代码将不会获得任何内存,并且平均保持在38mb左右。你知道吗
所以我的问题是:我这样做有什么坏处吗?当我想让我的电脑连续几天每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)
老实说,听起来这个程序应该重新编写。如果你在内部存储你不需要的数据(从它的声音你是),你需要问自己为什么你是。如果你需要这些数据,写出来并重置变量。你知道吗
在这里,更清晰的描述会对我们有所帮助,比如代码本身,这样我们就可以找出真正的问题。你知道吗
相关问题 更多 >
编程相关推荐