使用os.system重启程序以节省内存?

问题描述 投票:1回答:1

我正在使用Python来搜索特定链接或关键字的网站,并希望每5秒发送一次请求。最初我使用while True循环每5秒发送一次请求,但是对于每个循环,我的程序比以前使用了大约1mb的内存。由于我想在Raspberry Pi上运行我的程序可能需要多天,这将很快填满内存。

一旦我的程序运行了我使用的所有代码,而不是使用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)
python memory while-loop os.system
1个回答
1
投票

说实话,听起来应该重写程序。如果你在内部存储你不需要的数据(从你的声音中存储),你需要问问自己为什么。如果需要该数据,请将其写出并重置变量。

更清晰一点在这里真的有用 - 即 - 代码本身所以我们可以找出真正的问题。

© www.soinside.com 2019 - 2024. All rights reserved.