使用重新启动程序操作系统为了节省内存?

2024-04-25 21:44:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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)

Tags: 内存代码import程序trueurlsourceget
1条回答
网友
1楼 · 发布于 2024-04-25 21:44:51

老实说,听起来这个程序应该重新编写。如果你在内部存储你不需要的数据(从它的声音你是),你需要问自己为什么你是。如果你需要这些数据,写出来并重置变量。你知道吗

在这里,更清晰的描述会对我们有所帮助,比如代码本身,这样我们就可以找出真正的问题。你知道吗

相关问题 更多 >